给定字符串 s 和 t ,判断 s 是否为 t 的子序列。
字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"
是"abcde"
的一个子序列,而"aec"
不是)。
进阶:
如果有大量输入的 S,称作 S1, S2, ... , Sk 其中 k >= 10亿,你需要依次检查它们是否为 T 的子序列。在这种情况下,你会怎样改变代码?
class Solution {
public:
bool isSubsequence(string s, string t) {
int m=0;
if(s.empty()&&t.empty()) return true;
for(int i=0;i<t.size();i++){
if(s[m]==t[i]&&m!=s.size())
{ m++;
}
if(m==s.size()){return true;}
}return false;
}
};
首先空字符串是所有非空字符串的子序列。
其次从第一个字符开始,所有的字符都在s中的序列才是子序列,逻辑清晰。