C++判斷子序列題目詳解
判斷子序列
給定字符串?s?和?t?,判斷?s?是否為?t?的子序列。
說(shuō)明:
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é)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
MFC實(shí)現(xiàn)對(duì)話框編輯控件上拖拽文件
這篇文章主要為大家詳細(xì)介紹了MFC實(shí)現(xiàn)對(duì)話框編輯控件上拖拽文件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06
C語(yǔ)言Iniparser庫(kù)實(shí)現(xiàn)ini文件讀寫
iniparser是針對(duì)INI文件的解析器。ini文件則是一些系統(tǒng)或者軟件的配置文件。本文就來(lái)介紹一下如何利用Iniparser庫(kù)實(shí)現(xiàn)ini文件讀寫吧2023-03-03
C語(yǔ)言游戲必備:光標(biāo)定位與顏色設(shè)置的實(shí)現(xiàn)方法
本篇文章是對(duì)c語(yǔ)言中光標(biāo)定位與顏色設(shè)置的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
C語(yǔ)言代碼實(shí)現(xiàn)簡(jiǎn)易掃雷
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言代碼實(shí)現(xiàn)簡(jiǎn)易掃雷,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-01-01
數(shù)據(jù)結(jié)構(gòu) 中數(shù)制轉(zhuǎn)換(棧的應(yīng)用)
這篇文章主要介紹了數(shù)據(jù)結(jié)構(gòu) 中數(shù)制轉(zhuǎn)換(棧的應(yīng)用)的相關(guān)資料,需要的朋友可以參考下2017-06-06
Qt5.9實(shí)現(xiàn)簡(jiǎn)單的多線程實(shí)例(類QThread)
Qt開(kāi)啟多線程,主要用到類QThread。用一個(gè)類繼承QThread,然后重新改寫虛函數(shù)run()。具有一定的參考價(jià)值,感興趣的可以了解一下2021-09-09
C++控制臺(tái)實(shí)現(xiàn)密碼管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++控制臺(tái)實(shí)現(xiàn)密碼管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11

