概述
不知道为什么,在codeblocks里输入数据是对的,但是在oj系统里总是有问题。。实在看不出究竟哪里有问题,大佬们能不能帮忙看一下qaq
我的代码和输入输出都在下方,感谢好心人的帮助
(顺便吐槽一下oj,在给期望输出和实际输出的时候能不能给全???)
题目描述
凡是包含有happy作为子串的字符串都被称为快乐的字符串(happy必须连续),给你若干个字符串,你能把所有快乐的字符串都找出来么?
输入要求
第一行输入一个正整数n表示有n个字符串。 接下来输入n行,每行表示一个字符串。(n<=100,每个字符串不超过100)
输出要求
输出所有快乐的字符串,每行一个,按字典序排序。
输入样例
6 sdffhappysdfds asdfhapfsdpy dfdhappy rdfgf fdsfssd happy
输出样例
dfdhappy happy sdffhappysdfdsw
我的代码如下
#include<stdio.h>
#include<string.h>
int main()
{
int n,i,j,k,len,p=0,t=0;
char ch[100][100];//各个字符串
char se[5]={"appy"};
char hc[100][100],m[100],tt[100];//hc为筛选出的字符串,m用于排序,为某一次循环中的最小字符串,tt用于交换
scanf("%d",&n);
getchar();
for(i=0;i<n;i++)//同时完成输入和筛选
{ p=0;
gets(ch[i]);
len=strlen(ch[i]);
for(j=0;j<len;j++)//字符串第一个字符开始搜寻h,如果有则对下面四个字符串搜索
{
if(ch[i][j]=='h')
{
for(k=0;k<4;k++)
{
if(ch[i][j+k+1]==se[k])
p++;
else
break;
}
}
if(p==4)//找到含有happy的字符串了以后,将筛选出的的ch录入到hc中
{strcpy(hc[t],ch[i]);t++;break;}
}
}
for(i=0;i<t;i++)//排序部分
{ strcpy(m,hc[i]);
for(j=i+1;j<t;j++)
{
if(strcmp(m,hc[j])>0)
{
strcpy(tt,m);
strcpy(m,hc[j]);
strcpy(hc[j],tt);
}
}
strcpy(hc[i],m);
}
for(i=0;i<t;i++)//输出
puts(hc[i]);
}
输入样例里的输入,结果是对的
oj的判定是这样的
最后
以上就是腼腆西牛为你收集整理的求解 nbuoj 1006 Problem G快乐字符串的全部内容,希望文章能够帮你解决求解 nbuoj 1006 Problem G快乐字符串所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复