链接:
链接: 392. 判断子序列
链接: 522. 最长特殊序列 II
描述,示例和提示:
判断子序列代码:
class Solution {
public:
bool isSubsequence(string s, string t) {
int i = 0;
int j = 0;
int lens = s.size();
int lent = t.size();
while(i<lens && j<lent)
{
if(s[i]==t[j]) i++;
j++;
}
return i==lens;
}
};
最长特殊序列 代码:
class Solution {
public:
bool isSubsequence(string s, string t) {
int i = 0;
int j = 0;
int lens = s.size();
int lent = t.size();
while(i<lens && j<lent){
if(s[i]==t[j]) i++;
j++;
}
return i==lens;
}
int findLUSlength(vector<string>& strs) {
int ret = -1;
int len = strs.size();
for(int i = 0,j;i<len;i++)
{
bool flag = true;
for(j = 0;j<len;j++)
{
if(i!=j && isSubsequence(strs[i],strs[j]))
{
flag=false;
break;
}
}
int now = strs[i].size();
if(flag)
ret = max(ret, now);
}
return ret;
}
};
注意:
判断子序列时,s不是t的子序列,不代表 t是s的子序列
所以遍历时,需要用单个和所有的都要比一下。