输入两个字符串a和b,都只包含英文小写字母。a长度<=100,b长度<=500,000
。
判定a是否是b的有效子串。
判定规则:
a中的每个字符在b中都能找到(可以不连续),且a在b中字符的前后顺序与a中顺序要保持一致。
(例如,a=”qwt”
是b=”qwerty”
的一个子序列且有效字符是q、w、t)。
输入两个字符串a和b,都只包含英文小写字母。a长度<=100,b长度<=500,000。
先输入a,再输入b,每个字符串占一行。
a串最后一个有效字符在b中的位置。(首位从0开始计算,无有效字符返回-1)。
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNextLine()){
String a=sc.nextLine();
String b=sc.nextLine();
System.out.println(get(a,b));
}
}
private static int get(String a,String b){
int index=-1;
for (int i=0;i<a.length();i++){
boolean flag=false;
for(int j=index+1;j<b.length();j++){
if(a.charAt(i)==b.charAt(j)){
index=j;
flag=true;
break;
}
}
if(!flag){
return index;
}
}
return index;
}
本文收录于,华为OD机试2023(Java)
本专栏包含了最新最全的2023年华为OD机试真题,有详细的分析和Java解答。已帮助1000+同学顺利通过OD机考。专栏会持续更新,每天在线答疑。