hdu 1039 题目 Easier Done Than Said? (字符串中字符n多条件)

2024-06-03 19:38

本文主要是介绍hdu 1039 题目 Easier Done Than Said? (字符串中字符n多条件),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点击打开链接

#include<stdio.h>
#include<string.h>char s[55];
bool isvol(char c){if(c=='a' || c=='e' || c=='i' || c=='o' || c=='u') return 1;return 0;
}
bool is2(int i,int j) {if(s[i]==s[j] && !((s[i]=='e'&&s[j]=='e')||(s[i]=='o' && s[j]=='o'))) return 1;return 0;
}
int main()
{int f1,f2,f3,i,len;bool vol[55];while(~scanf("%s",s)){if(!strcmp(s,"end"))break;memset(vol,0,sizeof(vol));f1=0;f2=f3=1;len = strlen(s);if(isvol(s[0]))  {				//判断第一个字符 vol[0] = f1=1;if(len==1) f2=f3=1;						//只有一个字母 }if(len>=2  )  {if(len==2) f2=1; 						//只有2个字符,不可能3个连续元音或辅音 if(isvol(s[1])){ vol[1] = f1 =1;	}   //判断第二个字符 if(is2(1,0)) f3=0;}for(i=2;i<len;i++){if(isvol(s[i])) { vol[i]=1;  f1=1;	}if(is2(i,i-1))  { f3=0;  	break;	}  //连续两个相同 if( (vol[i-1]&&vol[i-2]&&vol[i])||(!vol[i-1]&&!vol[i-2]&&!vol[i]) ) {// 连续3个元音或辅音 f2=0;	break;}}if(f1&&f2&&f3) printf("<%s> is acceptable.\n",s);else  printf("<%s> is not acceptable.\n",s);}return 0;
} 




这篇关于hdu 1039 题目 Easier Done Than Said? (字符串中字符n多条件)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1027926

相关文章

2390.从字符串中移除星号

给你一个包含若干星号 * 的字符串 s 。 在一步操作中,你可以: 选中 s 中的一个星号。 移除星号左侧最近的那个非星号字符,并移除该星号自身。 返回移除 所有 星号之后的字符串。 注意: 生成的输入保证总是可以执行题面中描述的操作。 可以证明结果字符串是唯一的。 示例 1: 输入:s = “leet**cod*e” 输出:“lecoe” 解释:从左到右执行移除操作: 距离第 1 个

Python 字符串占位

在Python中,可以使用字符串的格式化方法来实现字符串的占位。常见的方法有百分号操作符 % 以及 str.format() 方法 百分号操作符 % name = "张三"age = 20message = "我叫%s,今年%d岁。" % (name, age)print(message) # 我叫张三,今年20岁。 str.format() 方法 name = "张三"age

SQL Server中,添加数据库到AlwaysOn高可用性组条件

1、将数据添加到AlwaysOn高可用性组,需要满足以下条件: 2、更多具体AlwaysOn设置,参考:https://msdn.microsoft.com/zh-cn/library/windows/apps/ff878487(v=sql.120).aspx 注:上述资源来自MSDN。

剑指offer(C++)--左旋转字符串

题目 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它! class Solution {public:string LeftRotateStri

剑指offer(C++)--第一个只出现一次的字符

题目 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). class Solution {public:int FirstNotRepeatingChar(string str) {map<char, int> mp;for(int i = 0; i < str.size(); ++i)m

PAT-1039 到底买不买(20)(字符串的使用)

题目描述 小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子;如果不是,那么告诉她缺了多少珠子。为方便起见,我们用[0-9]、[a-z]、[A-Z]范围内的字符来表示颜色。例如,YrR8RrY是小红想做的珠串;那么ppRYYGrrYBR2258可以

js小题:通过字符串执行同名变量怎么做

在JavaScript中,你不能直接使用一个字符串来直接引用一个变量,因为JavaScript是一种静态类型语言(尽管它的类型在运行时可以变化),变量的名字在编译时就被确定了。但是,有几种方法可以实现类似的功能: 使用对象(或Map)来存储变量: 你可以使用一个对象来存储你的变量,然后使用字符串作为键来访问这些变量。 let myVars = { 'var1': 'Hello', 'var

【计算机组成原理】部分题目汇总

计算机组成原理 部分题目汇总 一. 简答题 RISC和CICS 简要说明,比较异同 RISC(精简指令集)注重简单快速的指令执行,使用少量通用寄存器,固定长度指令,优化硬件性能,依赖软件(如编译器)来提升效率。 CISC(复杂指令集)包含多样复杂的指令,能一条指令完成多步操作,采用变长指令,减少指令数但可能增加执行时间,倾向于硬件直接支持复杂功能减轻软件负担。 两者均追求高性能,但RISC

linux匹配Nginx日志,某个字符开头和结尾的字符串

匹配 os=1 开头, &ip结尾的字符串 cat 2018-06-07.log | egrep -o ‘os=1.*.&ip’ 存入日志。然后使用submit 前面和后面的值去掉,剩下就是需要的字符串。 cat 2018-06-07.log | egrep -o ‘os=1.*.&ip’ >log.log

算法训练营第六十七天 | 卡码网110 字符串接龙、卡码网105 有向图的完全可达性、卡码网106 岛屿的周长

卡码网110 字符串接龙 这题一开始用的邻接表+dfs,不幸超时 #include <iostream>#include <list>#include <string>#include <vector>using namespace std;int minLen = 501;bool count(string a, string b) {int num = 0;for (int i