B--字母数字大战
时间: 1ms 内存:128M
描述:
字母数字发生了战争,决定要分家,各自调选自己的家族成员。如果一个字符串仅由数字构成的那么属于dight家族;如果是仅由字母构成的那么属于letter家族;如果是由数字和字母一起构成的那么属于mixed家族。
输入:
输入一个字符串,长度不超过100,且字符串中只能包括数字或大、小写字母。
输出:
输出该字符串的家族类型。
示例输入:
123456ff123a8
示例输出:
mixed
提示:
参考答案(内存最优[964]):
#include "stdio.h"
#include "string.h"
int main()
{
int i;
char str[1001];
int flag=0;
while(~scanf("%s",str))
{
getchar();
for(i=0;i<strlen(str);i++)
{
if(str[i]<='9' && str[i]>='0' && (flag==1 || flag==0))
{
flag=1;
continue;
}
if(str[i]<='z' && str[i]>='a' && (flag==2 || flag==0))
{
flag=2;
continue;
}
if(str[i]<='9' && str[i]>='0' && flag==2)
{
flag=3;
break;
}
if(str[i]<='z' && str[i]>='a' && flag==1)
{
flag=3;
break;
}
}
if(flag==1)
printf("dight\n");
if(flag==2)
printf("letter\n");
if(flag==3)
printf("mixed\n");
flag=0;
}
return 0;
}
参考答案(时间最优[0]):
#include <iostream>
#include <cstring>
#include <string>
#include <cmath>
using namespace std;
int main()
{
char str[101];
while(cin>>str)
{
int i;
bool zimu=false;
bool num=false;
for(i=0;i<strlen(str);i++)
{
if(str[i]>='0'&&str[i]<='9')num=true;
else if(str[i]>='a'&&str[i]<='z')zimu=true;
else if(str[i]>='A'&&str[i]<='Z')zimu=true;
if(zimu&&num)break;
}
if(zimu&&num)cout<<"mixed"<<endl;
else if(zimu)cout<<"letter"<<endl;
else cout<<"dight"<<endl;
}
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。