題目概要

給定兩個字串st,如果st子序列(subsequence) 則返回true,否則返回false

  • 子序列(subsequence) 定義:字串的子序列即藉由刪除一些(或不刪除)連續字元且不打亂其餘字元的相對位置,讓原始字串(t)形成新的字串(s)。
  • 子序列(subsequence) 舉例:“ace"是”abcde"的子序列;"aec"不是"abcde"的子序列。

解題思路

  • 利用for迴圈逐一拿字串s的每個字元去跑字串t,最後確認有找到的數量是否跟字串s的字元數是否一樣,若一樣則返回true,不一樣則返回false。
  • 若是字串s的字元在字串t中都找不到,變數j便會到達字串t的最後一個編號,因此for迴圈便可停止執行,直接執行最後的判斷語句。

參考程式碼

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
public:
bool isSubsequence(string s, string t) {
int j=0,count=0;
for(int i=0; i<s.length()&&j<t.length(); i++)
{
for(; j<t.length(); j++)
{
if(s[i]==t[j]) {
count++;
j++;
break;}
}
}
return count==s.length();
}
};

提交成果

提交成果僅供參考,實際數值常會因伺服器實時運行、資源分配以及當下的隱藏測資而有所不同。

Imgur