有口碑的南昌网站制作,互联网保险论文,网页制作平台软件,证书查询入口官网求#xff1a;给定字符串 s 和 t #xff0c;判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~ 500,000)#xff0c;而 s 是个短字符串(长度 100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩…求给定字符串 s 和 t 判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~ 500,000)而 s 是个短字符串(长度 100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如ace是abcde的一个子序列而aec不是)。示例 1:s abc, t ahbgdc返回 true.示例 2:s axc, t ahbgdc返回 false.解1、双指针利用2个指针分别遍历字符串s和字符串t直到某个字符串遍历完成。使用一个遍历findCount来记录匹配字符数findCount初始化为0遍历过程中如果发现字符匹配findCount加1。退出时判断findCount是否与字符串s的长度相等相等说明是子串否则不是子串。时间复杂度O(MN)M为字符串s长度N为字符串t长度因为N远大于M可以近似为O(N)空间复杂度O(1)bool isSubsequence(char* s, char* t){inti,j;intfindCount 0;for(i0,j0;iif(s[i]t[j]){i;findCount;}}returnfindCount strlen(s);}2、双指针优化不计算字符串s和字符串t的长度直接比。退出的条件是字符串s或字符串t遍历完成。时间复杂度O(MN)M为字符串s长度N为字符串t长度因为N远大于M可以近似为O(N)空间复杂度O(1)bool isSubsequence(char* s, char* t){while(1){if(!*s) return true;if(!*t) return false;if(*t *s) s;}}3、动态规划参考官方题解。