给定两个字符串,均只包含英文字母,需区分大小写,一个是源字符串SS(长度<1000), 另一个是目标字符串TS(长度<1000),请问能否通过删除SS中的字符(不改变顺序)将它变换成TS,如果可以输出“YES",不可以则输出“NO"。 输入说明:第一行为源字符串SS,第二行为目标字符串TS。

import java.util.Scanner;

/*
    给定两个字符串,均只包含英文字母,需区分大小写,一个是源字符串SS(长度<1000),
    另一个是目标字符串TS(长度<1000),请问能否通过删除SS中的字符(不改变顺序)将它变换成TS,如果可以输出“YES",不可以则输出“NO"。
    输入说明:第一行为源字符串SS,第二行为目标字符串TS。
    输出说明:可以输出“YES",不可以输出“NO"。
    输入样例1:Thereisacomputer Treat
    输出样例1:YES
    输入样例2:Thereisacomputer Trait
    输出样例2:NO
    */
public class StringCompare {
    public static void main(String []args){
        Scanner scanner = new Scanner(System.in);
        String ss = scanner.nextLine();
        String ts = scanner.nextLine();
        int j = 0;
        for (int i = 0; i < ss.length(); i++){
            if (j == ts.length()){//防止下标溢出所以采用这种方式来,也能在查到时及时停止,减少算法
                System.out.println("YES");
                break;
            }
            if (ss.charAt(i) == ts.charAt(j)){
                j++;
                continue;
            }
        }
        if (j != ts.length()) {//
            System.out.println("NO");
        }
    }
}

posted @ 2020-12-16 23:42  蓝风c  阅读(542)  评论(0编辑  收藏  举报