尋找連續或不連續的子字串
//在s字串中找到t子字串,要求t的字元在s中可不連續存在。如:s="abc"、t="ac"|t="ab" 這兩個t都是s的子串。
//--->雙指標法
public boolean lookup(String s,String t){
/*
思路:index先指向t的第一位字元,如果在s中找到該字元,index就指向下一位。s的則繼續往下,一直到在s中找到t。
找不到就找不到...
*/
if(t.length() == 0) return true;
if(s.length()==0 && t.length() == 0) return true;
//t的指標
int index = 0;
for (int i = 0; i < s.length(); i++) {
if(s.charAt(i)==t.charAt(index)) index++;
if(index == t.length()) return true;
}
return false;
}
//如果是找連續的子字串呢?
public static boolean lookup(String s,String t){
/*
思路:index先指向t的第一位字元,如果在s中找到該字元,index就指向下一位。s的則繼續往下,一直到在s中找到t。
找不到就找不到...
*/
//t的指標
if(t.length() == 0) return true;
if(s.length()==0 && t.length() == 0) return true;
int index = 0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == t.charAt(index)){
//因為0已經找到,所以下面從1開始
index = 1;
for (int j = index; j < t.length(); j++) {
//找得到就index++,找不到退出迴圈繼續找
if (t.charAt(index) == s.charAt(j+i)) index++;else break;
//如果index已經等於t.length(),就返回true
if(index == t.length()) return true;
}
//初始化,重頭開始找
index = 0;
}
}
return false;
}
相關文章
- 求字串連續字元數量字串字元
- 《劍指Offer》- 連續子陣列的最大和或最小和陣列
- 連續子陣列的最大和陣列
- 連續順子間隔思路
- hive生成連續的時間和連續的數Hive
- 最短無序連續子陣列陣列
- java_求列舉所有的連續(或單個字元)的子串.Java字元
- 最大連續子陣列和的實現陣列
- leetcode最短無序連續子陣列LeetCode陣列
- HTTP非持續連線和持續連線HTTP
- 《字串連線你用+還是用StringBuilder》續字串UI
- JZ-030-連續子陣列的最大和陣列
- 最長迴文子序列(不連續) 可輸出迴文序列
- 目標檢測框不穩定不連續?
- 連續段DP
- 連續性方程
- 每日一練(22):連續子陣列的最大和陣列
- 【leetcode】53. Maximum Subarray 連續子序列的最大和LeetCode
- 牛客題霸--連續子陣列的最大和陣列
- python去除字串的前導或後續Python字串
- mysql資料庫,讓不連續的id重新排序MySql資料庫排序
- 最大連續子陣列和(最大子段和)陣列
- 極限與連續
- 連續自然數求和
- 一道演算法題:求出異或和為零的最長連續子串演算法
- 劍指 Offer 42.連續子陣列的最大和陣列
- 劍指office--31. 連續子陣列的最大和陣列
- 劍指Offer-連續子陣列中的最大和陣列
- 劍指offer-例題 連續子陣列的最大和陣列
- 極限與連續(二)
- 極限與連續(一)
- Verilog連續賦值、過程賦值、過程連續賦值總結賦值
- C++陣列的連續性C++陣列
- C#|.net core 基礎 - 如何判斷連續子序列C#
- 最大連續子陣列和求解問題(C語言)陣列C語言
- 對於小程式canvas在某些情況下touchmove 不能連續觸發導致的簽名不連續替代方案(企微)Canvas
- [每日一題] 第十五題:連續子陣列的最大和每日一題陣列
- 錯誤碼[-718]:收集到的歸檔日誌不連續