字符串target和source

给定字符串target和source,判断target是否为source的子序列。你可以认为target和source 中仅包含英文小写字母,字符串source可能会很长,
长度~=500,000,而target是个短字符串,长度<=100。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置
形成的新字符串,例如,'abc’是’aebycd’的一个子序列,而’ayb’不是。请找出最后一个序列的起始位置。
示例1
    输入:
        abc
        eadbc
    输出:
        1
示例2
    输入:
        abc
        abcaybec
    输出:
        3
说明:abcaybec中第0位的abc也匹配,但却不是最后匹配的序列。abcaybec中第3位的aybec去掉字符y、e后也为abc,也与目标字符串相符,故输出最后一个序列aybec的第一个字符的索引位置3。
 

import java.util.*;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String s1 = scanner.nextLine();
        String s2 = scanner.nextLine();
        int m = s1.length() - 1;
        int n = s2.length() - 1;
        boolean flag = false;
        while (m >= 0 && n >= 0) {
            if (s1.charAt(m) == s2.charAt(n)) {
                if (m == 0) {
                    flag = true;
                    System.out.println(n);
                }
                m--;
            }
            n--;
        }
        if (!flag) {
            System.out.println(-1);
        }

    }

}

你可能感兴趣的:(算法刷题,java,开发语言,蓝桥杯,算法)