今天留学建涯小编整理了杭电2024毕业出国留学 杭电ACM2024题求解相关内容,希望能帮助到大家,一起来看下吧。
本文目录一览:
杭电ACM2024题求解
大概看了下,我觉得你得算法可以改进下
不用双重循环,一重就够了
循环。。。
如果
是下标为0 则判断是否为英文字母或下划线
如果
不是下标为0 ,则判断是否为英文字母或下划线或数字
(其中当不符合规范条件时break退出)
最后通过判断是否中途退出,选择输出yes还是no(判断语句是if( i>=sizeof(s)))
杭电acm2024
#include <iostream>
using namespace std;
bool ischar(char ch)
{
return ch>='a'&&ch<='z' || ch>='A'&&ch<='Z';
}
bool isnum(char ch)
{
return ch>='0'&&ch<='9';
}
bool judge(char *a)
{
if(a[0]!='_'&&!ischar(a[0])) return false;
for(int i=1; a[i]; ++i)
if(a[i]!='_'&&!ischar(a[i])&&!isnum(a[i])) return false;
return true;
}
int main()
{
char a[100];
int text, i, j;
cin>>text;
getchar();
for(i=1; i<=text; ++i)
{
cin.getline(a, 100);
if(judge(a)) cout<<"yes\n";
else cout<<"no\n";
}
return 0;
}
杭电oj2024题,无法ac,我的代码那里不对?求大神指点
你的j初始化一下就好了,j = -1;
#include <iostream>
#include <ctype.h>
#include <cstdio>
#include <string.h>
using namespace std;
char a [10003];
int main()
{
int n,j = -1;
cin>>n;
getchar();
for (int i=0;i<n;i++)
{
gets(a);
int len=strlen(a);
if (a[0]!='_' && isalpha(a[0])==0)
{
cout<<"no"<<endl;
continue;
}
for (int t=1;t<len;t++)
{
if (a[t]!='_' && isalpha(a[t])==0 && isdigit(a[t])==0)
{
cout<<"no"<<endl;
j=1;
break;
}
}
if (j==1) continue;
cout<<"yes"<<endl;
}
return 0;
}
留学建涯以上就是杭电2024毕业出国留学 杭电ACM2024题求解全部内容,更多相关信息,敬请关注留学建涯。
免责声明:文章内容来自网络,如有侵权请及时联系删除。