C++判斷子序列題目詳解
判斷子序列
給定字符串?s?和?t?,判斷?s?是否為?t?的子序列。
說明:
1.字符串的一個子序列是原始字符串刪除一些(也可以不刪除)字符而不改變剩余字符相對位置形成的新字符串。(例如,"ace"?是?"abcde"?的一個子序列,而?"aec"?不是)。
//提示 1. 0 <= s.length <= 100 2. 0 <= t.length <= 10^4 3. 兩個字符串都只由小寫字符組成。
實(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 指針是否完成了對 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;
}
}
運(yùn)行結(jié)果截圖如下:

總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
C語言Iniparser庫實(shí)現(xiàn)ini文件讀寫
iniparser是針對INI文件的解析器。ini文件則是一些系統(tǒng)或者軟件的配置文件。本文就來介紹一下如何利用Iniparser庫實(shí)現(xiàn)ini文件讀寫吧2023-03-03
C語言游戲必備:光標(biāo)定位與顏色設(shè)置的實(shí)現(xiàn)方法
本篇文章是對c語言中光標(biāo)定位與顏色設(shè)置的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
數(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)簡單的多線程實(shí)例(類QThread)
Qt開啟多線程,主要用到類QThread。用一個類繼承QThread,然后重新改寫虛函數(shù)run()。具有一定的參考價值,感興趣的可以了解一下2021-09-09
C++控制臺實(shí)現(xiàn)密碼管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++控制臺實(shí)現(xiàn)密碼管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-11-11

