C++判斷子序列題目詳解
判斷子序列
給定字符串?s?和?t?,判斷?s?是否為?t?的子序列。
說明:
1.字符串的一個(gè)子序列是原始字符串刪除一些(也可以不刪除)字符而不改變剩余字符相對(duì)位置形成的新字符串。(例如,"ace"?是?"abcde"?的一個(gè)子序列,而?"aec"?不是)。
//提示 1. 0 <= s.length <= 100 2. 0 <= t.length <= 10^4 3. 兩個(gè)字符串都只由小寫字符組成。
實(shí)例1:
輸入:s = "abc", t = "ahbgdc" 輸出:true
實(shí)例2:
輸入:s = "axc", t = "ahbgdc" 輸出:false
一、解題思路
1、解法一( Java )
解法思路:利用?sChar?指針遍歷字符串?s?,tChar?指針遍歷字符串?t?,然后如果 sChar 與 tChar 指向的字符相等,sChar和 tChar 都往后移,否則 tChar 往后移繼續(xù)在字符串 t 中尋找,最后判斷sChar 指針是否完成了對(duì) 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指向的字符是否相等,相等時(shí)sChar和tChar都往后移,否則tChar往后移繼續(xù)在字符串t中尋找 sChar ++; tChar++; } if (sChar == s.length()) //判斷sChar指針是否完成了對(duì)s字符串的遍歷 return true; else return false; } }
運(yùn)行結(jié)果截圖如下:
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
C++ deque與vector對(duì)比的優(yōu)缺點(diǎn)
這篇文章主要介紹了C++中deque與vector相比的優(yōu)勢(shì)與劣勢(shì),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2023-01-01C語言實(shí)現(xiàn)順序循環(huán)隊(duì)列實(shí)例
大家好,本篇文章主要講的是C語言實(shí)現(xiàn)順序循環(huán)隊(duì)列實(shí)例,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下2022-02-02C語言異或校驗(yàn)算法的項(xiàng)目實(shí)現(xiàn)
異或校驗(yàn)算法(XOR校驗(yàn))是一種簡單的校驗(yàn)算法,用于檢測(cè)數(shù)據(jù)在傳輸或存儲(chǔ)過程中是否發(fā)生了錯(cuò)誤,本文主要介紹了C語言異或校驗(yàn)算法的項(xiàng)目實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08