62,615
社区成员
发帖
与我相关
我的任务
分享
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
String t = scanner.nextLine();
int j = 0;
for (int i = 0; i < t.length(); i++) {
if (t.charAt(i) == s.charAt(j)) {
j++; // 相等的话,指针右移一位
if (j >= s.length()) {
System.out.println("Yes");
return;
}
}
}
System.out.println("NO");
}
真的解决了,把nextLine()改成next()就好了,那s和t的长度不超过100000怎么解决,十分感谢
import java.util.Scanner;
public class Abc
{
public static void main(String[]args)
{
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
String t;
do
{
t = scanner.nextLine();
}while(t.length()<s.length()); //t 的长度要大于等于s的长度。
int i;
int j;
int w=0;
for(i=0;i<=s.length()-1;i++)
{
for(j=w;j<=t.length()-1;j++) //从w 开始匹配。(不要再从头去匹配了)。
{
if(s.charAt(i)==t.charAt(j))
{
w++; //找到匹配的,w递增1。 内层循环中断,判断下一个。
break;
}
}
}
if(w==s.length()) //循环结束,判断w的长度。
{
System.out.println("Yes");
}
else
{
System.out.println("No");
}
}
}