题目描述
输入两个字符串S和L,都只包含英文小写字母.S长度s<=100, L长度<=500000.判定S是否是L的有效子串。
判定规则:
S中的每个字符在L中都能找到(可以不连续) ,且S在L中字符的前后顺序与S中顺序要保持一致。(例如, S=“ace”是 L=“abcde”的一个子序列且有效字符是a,c,e,而“aec”不是有效子序列,且有效字符只有a,e)
输入描述
输入两个字符串S和L,都只包含英文小写字母。S长度s100, L长度s500,000.
先输入S,再输入L,每个字符串占一行。
输出描述
S 串最后一个有效字符在 L 中的位置。(首位从0开始计算,无有效字符返回—1)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
String l = sc.nextLine();
System.out.println(getResult(s, l));
}
public static int getResult(String s, String l) {
int i = 0;
int j = 0;
while (i < s.length() && j < l.length()) {
if (s.charAt(i) == l.charAt(j)) {
i++;
}
j++;
}
if (i == s.length()) return j - 1;
else return -1;
}
}