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个比较小的单位,其 ...
随机推荐
- 【转载】 Java并发编程:深入剖析ThreadLocal
原文链接:http://www.cnblogs.com/dolphin0520/p/3920407.html感谢作者的辛苦总结! Java并发编程:深入剖析ThreadLocal 想必很多朋友对Thr ...
- 趣味编程:CPS风格代码(C#,F#版)
CPS风格代码(C#版) using System; namespace fp { class CPS { static int add(int x, int y) => x + y; stat ...
- SQL Server:查看数据库用户权限(SQL 2005)
1. 查看 SQL 2005 用户所属数据库角色 use yourdb go select DbRole = g.name, MemberName = u.name, MemberSID = u.si ...
- VS Code常用快捷键总结
目录: 1.主命令框 2.常用快捷键 (1) 编辑器与窗口管理 (2) 代码编辑 <1> 格式调整 <2> 光标相关 <3> 重构代 ...
- docker问题
Docker报错 WARNING: IPv4 forwarding is disabled. Networking will not work. 解决办法: # vim /usr/lib/sysctl ...
- Codeforces Beta Round #14 (Div. 2)
Codeforces Beta Round #14 (Div. 2) http://codeforces.com/contest/14 A 找最大最小的行列值即可 #include<bits/s ...
- C#操作Excel 单元格的格式处理[xyytIT]
一. C# 操作 Excel 单元格自动填充,居中对齐,字体颜色等格式设置: Excel.Range titleRange = worksheet.get_Range(worksheet.Cells[ ...
- [leetcode]318. Maximum Product of Word Lengths单词长度最大乘积
Given a string array words, find the maximum value of length(word[i]) * length(word[j]) where the tw ...
- php 的多进程实践
php的多进程处理依赖于pcntl扩展,通过pcntl_fork创建子进程来进行并行处理. 例1如下: <?php $pid = pcntl_fork(); if($pid == -1) { ...
- js 获取高度
网页可见区域宽 :document.body.clientWidth; 网页可见区域高:document.body.clientHeight; 网页可见区域高:document.body.offs ...