C++判斷子序列題目詳解
判斷子序列
給定字符串?s?和?t?,判斷?s?是否為?t?的子序列。
說明:
1.字符串的一個子序列是原始字符串刪除一些(也可以不刪除)字符而不改變剩余字符相對位置形成的新字符串。(例如,"ace"?是?"abcde"?的一個子序列,而?"aec"?不是)。
//提示 1. 0 <= s.length <= 100 2. 0 <= t.length <= 10^4 3. 兩個字符串都只由小寫字符組成。
實例1:
輸入:s = "abc", t = "ahbgdc" 輸出:true
實例2:
輸入:s = "axc", t = "ahbgdc" 輸出:false
一、解題思路
1、解法一( Java )
解法思路:利用?sChar?指針遍歷字符串?s?,tChar?指針遍歷字符串?t?,然后如果 sChar 與 tChar 指向的字符相等,sChar和 tChar 都往后移,否則 tChar 往后移繼續(xù)在字符串 t 中尋找,最后判斷sChar 指針是否完成了對 s 字符串的遍歷。
代碼如下:
class Solution {
public static boolean isSubsequence(String s, String t) {
int sChar = 0 , tChar = 0;
//sChar指針遍歷字符串s,tChar指針遍歷字符串t
while (sChar < s.length() && tChar < t.length()){
if (s.charAt(sChar) == t.charAt(tChar))
//判斷sChar與tChar指向的字符是否相等,相等時sChar和tChar都往后移,否則tChar往后移繼續(xù)在字符串t中尋找
sChar ++;
tChar++;
}
if (sChar == s.length())
//判斷sChar指針是否完成了對s字符串的遍歷
return true;
else
return false;
}
}
運行結(jié)果截圖如下:

總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

