当前位置:   article > 正文

面试经典题---392.判断子序列

面试经典题---392.判断子序列

392.判断子序列

我的解法:

双指针法:

  • 分别用指针i、j遍历字符串t和s;
  • t[i]与s[j]相等时,两指针后移,不等时,只让i后移;
  • 一旦指针j到达末尾就代表字符串s的字符都与t中的字符匹配上,返回true;
  • 若只有指针i到达字符串t的末尾,代表s中有字符无法与t中字符匹配,返回false
  1. class Solution {
  2. public:
  3. bool isSubsequence(string s, string t) {
  4. if(s.size() > t.size()){
  5. return false;
  6. }
  7. int i = 0, j = 0;
  8. while(true){
  9. while(i < t.size() && t[i] == s[j]){
  10. i++;
  11. j++;
  12. }
  13. while(i < t.size() && t[i] != s[j]){
  14. i++;
  15. }
  16. if(i == t.size() && j < s.size()){
  17. return false;
  18. }
  19. if(j == s.size()){
  20. return true;
  21. }
  22. }
  23. }
  24. };

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/438426
推荐阅读
相关标签
  

闽ICP备14008679号