毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> java技术 >> 正文

两个字符串s和t,如何判断s是否是t的子序列源代码

更新时间:2012-11-7:  来源:毕业论文

【问题描述】
给定两个字符串s和t,请判断s是否是t的子序列。即从t中删除一些字符,将剩余的字符连接起来,即可获得s。
【输入形式】
包括若干个测试数据。每个测试数据由两个ASCII码的数字和字母串s和t组成,s和t的长度不超过100000。
【输出形式】
对每个测试数据,如果s是t的子序列则输出“Yes”,否则输出“No”。
【样例输入1】
sequence subsequence
【样例输出1】
Yes
【样例输入2】
person compression
【样例输出2】
No
【样例输入3】
VERDI vivaVittorioEmanueleReDiItalia
【样例输出3】
Yes

package java5.exam;

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 = scanner.nextLine();
int i;
int j;
int w=0;
for(i=0;i<=s.length()-1;i++){
for(j=0;j<=t.length()-1;j++){
if(s.charAt(i)==t.charAt(j)){
w++;
j++;

}
}
if(j>=t.length()){
break;
}
if(w==s.length()){
System.out.println("Yes");

}else
System.out.println("No");


}

请问到底哪里错了

即从t中删除一些字符,将剩余的字符连接起来,即可获得s。

这个应该用一层循环就可以结束战斗。
1、按照t进行逐个字遍历,同时从s的首字开始(s指针为0);
2、如果t当前字跟s当前字一致,则s指针++;
3、如果s指针已经到达末尾,则说明要求成立,退出。
4、t指针++;
5、如果t指针已经到达末尾,说明要求不成立,退出。
6、继续循环到2.
改了一下,试试:

Java code123456789101112131415161718192021222324252627282930313233343536373839 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");         }     } }

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。