hdu 1039 Easier Done Than Said? 字符串
Easier Done Than Said?
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
FnordCom is developing such a password generator. You work in the quality control department, and it's your job to test the generator and make sure that the passwords are acceptable. To be acceptable, a password must satisfy these three rules:
It must contain at least one vowel.
It cannot contain three consecutive vowels or three consecutive consonants.
It cannot contain two consecutive occurrences of the same letter, except for 'ee' or 'oo'.
(For the purposes of this problem, the vowels are 'a', 'e', 'i', 'o', and 'u'; all other letters are consonants.) Note that these rules are not perfect; there are many common/pronounceable words that are not acceptable.
tv
ptoui
bontres
zoggax
wiinq
eep
houctuh
end
<tv> is not acceptable.
<ptoui> is not acceptable.
<bontres> is not acceptable.
<zoggax> is not acceptable.
<wiinq> is not acceptable.
<eep> is acceptable.
<houctuh> is acceptable.
#include<stdio.h>
#include<string.h>
int main()
{
int i,flag,len,vowel;
char str[25];
while(gets(str))
{
if(!strcmp(str,"end")) break;
len=strlen(str);
vowel=0; flag=1;
for(i=0;i<=1;i++) /*特判str[0]和str[1]*/
if(str[i]=='a'||str[i]=='e'||str[i]=='i'||str[i]=='o'||str[i]=='u')
vowel++;
if(str[0]==str[1]&&str[0]!='o'&&str[0]!='e')
{
flag=0;
printf("<%s> is not acceptable.\n",str);
continue;
}
for(i=2;i<len;i++)
{
if((str[i]==str[i-1])&&(str[i]!='e'&&str[i]!='o')) /*两个连续*/
{
flag=0;
break;
}
if(str[i]=='a'||str[i]=='e'||str[i]=='i'||str[i]=='o'||str[i]=='u') /*元音字母*/
vowel++;
if((str[i]=='a'||str[i]=='e'||str[i]=='i'||str[i]=='o'||str[i]=='u')&&
(str[i-1]=='a'||str[i-1]=='e'||str[i-1]=='i'||str[i-1]=='o'||str[i-1]=='u')&&
(str[i-2]=='a'||str[i-2]=='e'||str[i-2]=='i'||str[i-2]=='o'||str[i-2]=='u')) /*三个连续元音*/
{
flag=0;
break;
}
if((str[i]!='a'&&str[i]!='e'&&str[i]!='i'&&str[i]!='o'&&str[i]!='u')&&
(str[i-1]!='a'&&str[i-1]!='e'&&str[i-1]!='i'&&str[i-1]!='o'&&str[i-1]!='u')&&
(str[i-2]!='a'&&str[i-2]!='e'&&str[i-2]!='i'&&str[i-2]!='o'&&str[i-2]!='u')) /*三个连续辅音*/
{
flag=0;
break;
}
}
if(flag&&vowel>0)
printf("<%s> is acceptable.\n",str);
else
printf("<%s> is not acceptable.\n",str);
}
return 0;
}
最新文章
- Windows7 忘记密码的解决办法
- 调整Virtual Box硬盘大小
- VS2008 工程只生成dll不生成lib的解决方案
- 使用PHP获取根域名的方法!
- VS 2013打开.edmx文件时报类型转换异常
- jquery.pagination.js分页
- Linux平台Cpu使用率的计算
- Openjudge-计算概论(A)-找和为K的两个元素
- 查看eclipse ADT SDK JDK版本号
- 谈谈git以及如何关联github
- 解决easyui combobox赋值boolean类型的值时,经常出现的内容显示的value而不是text的bug
- django的request介绍和APIView流程分析和CBV的流程分析
- ServiceStack 错误处理
- Docker未启动错误:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
- 代码:css小图标
- 如何修改静态IP地址和动态IP地址
- Linux命令-用户管理命令:useradd,passwd,who,w
- .NET/C# 使用 Span 为字符串处理提升性能
- vue开发的一些设置以及技巧
- 用户登录失败,该用户与可信SQL Server连接无关联,错误:18452
热门文章
- Java Web 前端高性能优化(二)
- linux 访问windows共享
- [水题]Codeforces337A Puzzles
- UVALive - 3713 Astronauts
- Android Integer.decode()和Intger.valueof()
- Android 三档自定义滑动开关,禁止点击功能的实现,用默认的seekbar组件实现
- Emmet(前身是zen coding)介绍和使用
- Android:Fragment+ViewPager实现Tab滑动
- RPGJS 进阶分析之 如何使用RMXP导出的数据
- poj1160Post Office(DP)