C++判断子序列题目详解

编辑: admin 分类: c#语言 发布时间: 2021-12-12 来源:互联网
目录
  • 判断子序列
    • 一、解题思路
      • 1、解法一( Java )
  • 总结

    判断子序列

    给定字符串 s 和 t ,判断 s 是否为 t 的子序列。

    说明:
    1.字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace" 是 "abcde" 的一个子序列,而 "aec" 不是)。

    //提示
     1. 0 <= s.length <= 100
     2. 0 <= t.length <= 10^4
     3. 两个字符串都只由小写字符组成。
    

    实例1:

    输入:s = "abc", t = "ahbgdc"
    输出:true
    

    实例2:

    输入:s = "axc", t = "ahbgdc"
    输出:false
    

    一、解题思路

    1、解法一( Java )

    解法思路:利用 sChar 指针遍历字符串 s ,tChar 指针遍历字符串 t ,然后如果 sChar 与 tChar 指向的字符相等,sChar和 tChar 都往后移,否则 tChar 往后移继续在字符串 t 中寻找,最后判断sChar 指针是否完成了对 s 字符串的遍历。

    代码如下:

    class Solution {
        public static boolean isSubsequence(String s, String t) {
            int sChar = 0 , tChar = 0;
            //sChar指针遍历字符串s,tChar指针遍历字符串t
            while (sChar < s.length() && tChar < t.length()){
                if (s.charAt(sChar) == t.charAt(tChar))
                //判断sChar与tChar指向的字符是否相等,相等时sChar和tChar都往后移,否则tChar往后移继续在字符串t中寻找
                    sChar ++;
                tChar++;
            }
            if (sChar == s.length())
            //判断sChar指针是否完成了对s字符串的遍历
                return true;
            else
                return false;
        }
    }
    
    
    

    运行结果截图如下:

    运行结果截图

    总结

    本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注海外IDC网的更多内容!

    【转自:http://www.1234xp.com/xggf.html 欢迎转载】