noip第10课作业
1. 统计不同类型字符出现次数
【问题描述】
输入一个字符串(假设长度不超过1000个字符),统计其中大写,小写,数字,其他字符出现的次数。
【样例输入】Hello,what are you doing 123?
【样例输出】1 19 3 6
#include<iostream>
#include<cstring>
using namespace std;
int main() {
char a[];
int dx = ,xx = ,sz = ,qt = ;
int l, i;
//输入字符串
cin.getline(a,);
l = strlen(a);
for(i = ; i < l; i++) {
if(a[i] >='A' && a[i] <='Z') {
dx++;
} else if(a[i] >='a' && a[i] <='z') {
xx++;
} else if(a[i] >='' && a[i] <='') {
sz++;
} else {
qt++;
}
}
cout << dx <<" " << xx <<" "<< sz<<" " << qt;
return ;
}
2. 删除数字字符,并统计删除的数字的个数
【问题描述】
从键盘输入一个由大、小写字母和数字组成的任意一个字符串(不需判断),其长度不小于 8,不大于 30。现要求将字符串
中的所有数字字符删除,其他字符依照原有顺序保持不变,并统计删除的数字的个数。
【输入文件]】
只有一行,包含只由大、小写字母和数字组成的一个字符串(其长度 8≤L≤30)。
【输出文件]】
有两行:
第一行:为删除数字字符后的字符串;
第二行:为统计删除的数字的个数。
【要求】每行的输出数据从第一列输出
【样例输入】
ABCD123efg678
【样例输出】
ABCDefg
6
#include<iostream>
#include<cstring>
using namespace std;
int main() {
char a[];
int i,l,sum = ;
cin >> a;
l=strlen(a);
for(i=; i<l; i++) {
if(a[i]>='' && a[i]<='') {
sum++;
} else {
cout << a[i];
}
}
cout << endl;
cout << sum;
return ;
}
1. 判断字符串是否为回文
【问题描述】
输入一个字符串,输出该字符串是否回文。回文是指顺读和倒读都一样的字符串。
输入为一行字符串(字符串中没有空白字符,字符串长度不超过100)。
如果字符串是回文,输出yes;否则,输出no。
【样例输入】
abcdedcba
【样例输出】
Yes
#include<iostream>
#include<cstring>
using namespace std;
int main() {
char str1[],str2[];
int i;
long len;
cin >> str1;
len = strlen(str1);
for(i=; i<len; i++) {
str2[i]=str1[len--i];
}
str2[i]='\0';
if(strcmp(str1,str2)==) {
cout << "yes";
} else {
cout << "no";
}
return ;
}
2. 石头剪子布
【问题描述】
石头剪子布,是一种猜拳游戏。起源于中国,然后传到日本、朝鲜等地,随着亚欧贸易的不断发展它传到了欧洲,到了近现代逐渐风靡世界。简单明了的规则,使得石头剪子布没有任何规则漏洞可钻,单次玩法比拼运气,多回合玩法比拼心理博弈,使得石头剪子布这个古老的游戏同时用于“意外”与“技术”两种特性,深受世界人民喜爱。
游戏规则:石头打剪刀,布包石头,剪刀剪布。
现在,需要你写一个程序来判断石头剪子布游戏的结果。
输入:输入包括N+1行:
第一行是一个整数N,表示一共进行了N次游戏。1 <= N <= 100。
接下来N行的每一行包括两个字符串,表示游戏参与者Player1,Player2的选择(石头、剪子或者是布):S1 S2
字符串之间以空格隔开S1,S2只可能取值在{"Rock", "Scissors", "Paper"}(大小写敏感)中。
输出:输出包括N行,每一行对应一个胜利者(Player1或者Player2),或者游戏出现平局,则输出Tie。
【样例输入】
3
Rock Scissors
Paper Paper
Rock Paper
【样例输出】
Player1
Tie
Player2
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
int main() {
int N;
string a, b;
cin >> N;
for (int i=; i<N; i++) {
cin >> a;
cin >> b;
if (a.compare("Rock") == ) {
if (b.compare("Rock") == ) {
cout << "Tie" << endl;
} else if (b.compare("Scissors") == ) {
cout << "Player1" << endl;
} else {
cout << "Player2" << endl;
}
} else if (a.compare("Scissors") == ) {
if (b.compare("Rock") == ) {
cout << "Player2" << endl;
} else if (b.compare("Scissors") == ) {
cout << "Tie" << endl;
} else {
cout << "Player1" << endl;
}
} else {
if (b.compare("Rock") == ) {
cout << "Player1" << endl;
} else if (b.compare("Scissors") == ) {
cout << "Player2" << endl;
} else {
cout << "Tie" << endl;
}
}
}
return ;
}
3. 找第一个只出现一次的字符
【问题描述】
给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出no。
输入:一个字符串,长度小于100000。
输出:输出第一个仅出现一次的字符,若没有则输出no。
【样例输入】
abcabd
【样例输出】
c
#include<iostream>
#include<cstring>
using namespace std;
int main() {
//定义字符数组
char str[];
//定义一个长度 定义存储每一个字符出现的次数的数组
int len,a[]= {};
//输入字符串
cin >> str;
//求字符串长度
len = strlen(str);
//abacad a存每个字符的个数 a0++ 2 a++ 1
for(int i=; i<len; i++) {
a[str[i]-]++;
}
for(int i=; i<len; i++) {
if(a[str[i]-]==) {
cout << str[i];
return ;
}
}
cout << "no";
return ;
}
noip第10课作业的更多相关文章
- noip第5课作业
1. 计算税收 [问题描述] 对某产品征收税金,在产值1万元以上收税5%:在1万元以下但在5000元或者以上的征收税3%:在5000元以下但在1000元或以上征收税2%:1000元以下的免收税 ...
- noip第34课作业
1. 信息加密 [问题描述] 在传递信息的过程中,为了加密,有时需要按一定规则将文本转换成密文发送出去.有一种加密规则是这样的:1. 对于字母字符,将其转换成其后的第3个字母.例如:A→D,a→ ...
- noip第33课作业
1. 排座椅 [问题描述] 上课的时候总会有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情.不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的D对同 ...
- noip第29课作业
1. 钢条切割 [问题描述] 一家公司购买长钢条,将其切割成短钢条出售,切割本身没有成本,长度为i的短钢条的价格为Pi.那给定一段长度为n的钢条和一个价格表Pi,求钢条的切割方案使得收益Rn最大. ...
- noip第28课作业
分段数列 [问题描述] 对于给定的一个长度为N的正整数数列A[i],现要将其分成连续的若干段,并且每段和不超过M(可以等于M),问最少能将其分成多少段使得满足要求. 输入格式: 输入第1行包含两个正整 ...
- noip第27课作业
1. 繁忙的都市 [问题描述] 城市C是一个非常繁忙的大都市,城市中的道路十分的拥挤,于是市长决定对其中的道路进行改造.城市C的道路是这样分布的:城市中有n个交叉路口,有些交叉路口之间有道路相连,两个 ...
- noip第25课作业
1. 求一个有向图所有顶点入度的和 输入有向图的顶点个数,边数以及各顶点之间的关联情况,要求求出这个有向图的所有顶点入度的总和. [输入格式] 第1行:2个空格分开的整数n(2<=n< ...
- noip第24课作业
1. 马走日 [问题描述] 马在中国象棋以日子形规则移动.请编写一段程序给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点. ...
- noip第23课作业
1. 营救 铁塔尼号遇险了!他发出了求救信号.距离最近的哥伦比亚号收到了讯息,时间就是生命,必须尽快赶到那里. 通过侦测,哥伦比亚号获取了一张海洋图.这张图将海洋部分分化成n*n个比较小的单位,其 ...
随机推荐
- 吴裕雄 数据挖掘与分析案例实战(13)——GBDT模型的应用
# 导入第三方包import pandas as pdimport matplotlib.pyplot as plt # 读入数据default = pd.read_excel(r'F:\\pytho ...
- 【Linux】svn环境配置
Ubuntu 安装svn环境配置 1. 安装 sudo apt-get install subversion 安装过程需要数据[Y] 2. svn位置选择 安装完成之后,选择svn目录位置, 将其放在 ...
- ssh 设置反向代理
远程主机上/etc/ssh/sshd_config中,开启 GatewayPorts yes systemctl reload sshd 本地: ssh -CqTnN -R 0.0.0.0:9000: ...
- Ansible Playbook Roles and Include Statements
介绍 虽然可以在一个非常大的文件中编写一个playbook(您可能会以这种方式开始学习playbook),但最终您将需要重新使用文件并开始组织事情. 在基本级别,饱含任务的文件允许您将配置策略分解成较 ...
- 安装Anaconda以及jupyter的使用
1)下载https://www.anaconda.com/download/ 2)安装 3)终端查看(Anaconda Prompt) 4)升级所有的包 初次安装下的软件包版本一般都比较老旧,因此提前 ...
- LPSN获取菌python脚本
本文转载于https://mp.weixin.qq.com/s?__biz=MzIxNzEzODA5NQ==&mid=2649373408&idx=1&sn=232c2cb36 ...
- oracle查询锁表
select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = ...
- poj2456(二分+贪心)
题目链接:http://poj.org/problem?id=2456 题意: 有n个呈线性排列的牲畜堋,给出其坐标,有c头牛,求把两头牛的最短距离的最大值. 思路: 先将坐标排个序.两头牛的最短距离 ...
- JDK-8不是有效的Win32应用程序
- Java动态代理机制详解(类加载,JDK 和CGLIB,Javassist,ASM)
class文件简介及加载 Java编译器编译好Java文件之后,产生.class 文件在磁盘中.这种class文件是二进制文件,内容是只有JVM虚拟机能够识别的机器码.JVM虚拟机读取字节码文件,取出 ...