鱼C论坛

 找回密码
 立即注册
查看: 2218|回复: 9

acm 英文题,

[复制链接]
发表于 2015-12-13 14:47:43 | 显示全部楼层 |阅读模式
10鱼币
题目名称:All in All
题目就不原模原样写了,大概意思是 输入二个字符串,从第二个字符串中删掉一些字符 等于前面那个字符,输出 yes,否则输出no.
样例:
sequence  subsequence
person  compression
VERDI  vivaVittorioEmanueleReDiItalia
caseDoesMatter  CaseDoesMatter
输出:
Yes
No
Yes
No

题目不知道有没有理解错,应该没错。
我提交,显示 30%  错误。不知哪里没有考虑全。
代码:
  1. # include <stdio.h>
  2. # include <string.h>
  3. int main()
  4. {
  5.         char a[100050],b[100050],i,j,k,num;
  6.         while(scanf("%s",&a) != EOF && scanf("%s",&b) != EOF)
  7.         {
  8.                 i=0;num=0;
  9.                 for(j=0;a[j] != '\0';j++)
  10.                 {
  11.                         for(k=i;b[k] != '\0';k++)
  12.                         {
  13.                                 if(a[j]==b[k])
  14.                                 {
  15.                                         i=k+1;
  16.                                         num++;
  17.                                         break;
  18.                                 }
  19.                         }
  20.                 }
  21.                 if(strlen(a) == num)
  22.                    printf("Yes\n");
  23.         else
  24.            printf("No\n");
  25.         }
  26. }
复制代码


求 大神指教~~~:hug: :hug:

最佳答案

查看完整内容

思路应该是挺清晰的,遍历第二个字符串,逐字符匹配第一个字符串。下面的代码用了Java,不知道能看懂不。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-12-13 14:47:44 | 显示全部楼层
思路应该是挺清晰的,遍历第二个字符串,逐字符匹配第一个字符串。下面的代码用了Java,不知道能看懂不。

  1.         public static void main(String[] args) {
  2.                 System.out.println("please enter two string split the space");
  3.                 Scanner in = new Scanner(System.in);
  4.                 String string = in.nextLine();
  5.                 String str1 = string.split(" ")[0];
  6.                 String str2 = string.split(" ")[1];

  7.                 int i = 0, j = 0;
  8.                 for (; i < str2.length(); i++) {
  9.                         if (str1.charAt(j) == str2.charAt(i)) {
  10.                                 j++;
  11.                                 if (j >= str1.length()) {
  12.                                         break;
  13.                                 }
  14.                         }
  15.                 }
  16.                 if (j >= str1.length()) {
  17.                         System.out.println("Yes");
  18.                 } else {
  19.                         System.out.println("No");
  20.                 }
  21.         }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-12-13 16:22:24 | 显示全部楼层
本帖最后由 小人 于 2015-12-13 16:36 编辑

看错了  
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-12-13 16:29:46 | 显示全部楼层
小人 发表于 2015-12-13 16:22
VERDI  vivaVittorioEmanueleReDiItalia
caseDoesMatter  CaseDoesMatter  
按照 这两个 栗子 看  就是   ...

是 区分 大小写的,VERDI   vivaVittorioEmanueleReDiItalia。。。。这个后面 那个字符串中 也是有前面那个大写字母的, 最后一个 因为首字母 没有匹配,所以输出 no
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-12-13 16:34:07 | 显示全部楼层
独一无② 发表于 2015-12-13 16:29
是 区分 大小写的,VERDI   vivaVittorioEmanueleReDiItalia。。。。这个后面 那个字符串中 也是有前面那 ...

我好像看错了  不好意思
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-12-13 16:50:48 | 显示全部楼层
小人 发表于 2015-12-13 16:34
我好像看错了  不好意思

大神,我想不出 有什么 特殊例子了。 还有一个疑问  会不会是 scanf 的问题,要用gets,但是用 gets 不知道该如何写,二个 字符串 用空格隔开的,gets 会记录到 一个字符串 中。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-12-13 17:10:24 | 显示全部楼层
独一无② 发表于 2015-12-13 16:50
大神,我想不出 有什么 特殊例子了。 还有一个疑问  会不会是 scanf 的问题,要用gets,但是用 gets 不知 ...

acm 的题 我不会哎
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-12-13 17:13:29 | 显示全部楼层
小人 发表于 2015-12-13 17:10
acm 的题 我不会哎

好吧,谢谢啦~~
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-12-14 16:42:32 | 显示全部楼层
HHR 发表于 2015-12-14 01:12
思路应该是挺清晰的,遍历第二个字符串,逐字符匹配第一个字符串。下面的代码用了Java,不知道能看懂不。

谢谢了~ 我 java没学。就采纳了把~~
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-12-15 11:07:35 | 显示全部楼层
《scanf_s》需要加入个_s
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-21 15:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表