碰到的一个简单的算法题,关于两个字符串word1和word2,判断word1能不能只通过删除字符就能够得到word1.

Posted leiro

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了碰到的一个简单的算法题,关于两个字符串word1和word2,判断word1能不能只通过删除字符就能够得到word1.相关的知识,希望对你有一定的参考价值。

这是我写的一个解法,大概思路是说。首先判断如果word2的长度大于word1则直接返回false,负责继续执行。

我们判断在word2中的每一个字符在word1中出现的位置,如果刚好符合word1中的全部或者部分字符的组成顺序那么就符合返回true。

具体的代码实现如下:

static boolean isTrans(String word1,String word2){
        if(word2==null || word2.length()==0) return true;
        if(word1 == null || word1.equals("") || word2.length()>word1.length()) return false;
        char [] chars1 = word1.toCharArray();
        char [] chars2 = word2.toCharArray();
        int c2Index = 0; 
        for(int i=0;i<chars1.length;i++){
            if(chars1[i]==chars2[c2Index]){
                c2Index++;
                if(c2Index>=word2.length()) break;  // 这里主要判断如果当这个c2Index已经大于word2.length()的时候就没有必要继续执行了
            }
        }
        return c2Index == word2.length();
    }

 

以上是关于碰到的一个简单的算法题,关于两个字符串word1和word2,判断word1能不能只通过删除字符就能够得到word1.的主要内容,如果未能解决你的问题,请参考以下文章

每周一道算法题011:最长公共子串

Leetcode简单题41~60

算法 - 堆栈类和嵌套循环实例运用

算法---动态规划(编辑距离不同子序列动态规划总结)

leetcode2068. 检查两个字符串是否几乎相等

交替合并字符串