数制转换分数: 2
标签
- 进制转换
题目描述
求任意两个不同进制非负整数的转换(2进制~16进制),所给整数在long所能表达的范围之内。
不同进制的表示符号为(0,1,...,9,a,b,...,f)或者(0,1,...,9,A,B,...,F)。
输入格式
输入只有一行,包含三个整数a,n,b。a表示其后的n 是a进制整数,b表示欲将a进制整数n转换成b进制整数。a,b是十进制整数,2 =< a,b <= 16。
输出
可能有多组测试数据,对于每组数据,输出包含一行,该行有一个整数为转换后的b进制数。输出时字母符号全部用大写表示,即(0,1,...,9,A,B,...,F)。
样例输入
4 123 10
样例输出
27
*** 提示已隐藏,点击上方 [+] 可显示 ***
分类
- 北京大学研究生复试上机真题
-
1 #include <iostream> 2 #include <string> 3 #include <algorithm> 4 using namespace std; 5 string shuzi="0123456789ABCDEF";//用来 根据整数查找字符串中字符的位置 6 int ch[128]={0};//根据字符存放该字符所对应的整数值 7 long toshi(string str,int a) 8 { 9 int sum=0; 10 for(int i=0;i<str.length();i++) 11 { 12 sum=sum*a+ch[str[i]]; 13 } 14 return sum; 15 } 16 string change(int sum,int b) 17 { 18 string change=""; 19 if(sum==0) change="0";//"0"不要忘掉 20 while(sum>0) 21 { 22 change=change+shuzi[sum%b]; 23 sum=sum/b; 24 } 25 reverse(change.begin(),change.end()); 26 return change; 27 } 28 int main() 29 { 30 for(int i=0;i<10;i++) 31 ch['0'+i]=i; 32 for(int i=0;i<7;i++) 33 { 34 ch['A'+i]=10+i; 35 ch['a'+i]=10+i; 36 } 37 int a,b; 38 string str; 39 while(cin>>a>>str>>b) 40 { 41 int sum=toshi(str,a); 42 string cha=change(sum,b); 43 cout<<cha<<endl; 44 } 45 }
统计单词分数: 1.5
标签
- 字符串处理
- 统计单词数
题目描述
编一个程序,读入用户输入的,以“.”结尾的一行文字,统计一共有多少个单词,并分别输出每个单词含有多少个字符。
(凡是以一个或多个空格隔开的部分就为一个单词)
输入格式
输入包括1行字符串,以“.”结束,字符串中包含多个单词,单词之间以一个或多个空格隔开。
输出
可能有多组测试数据,对于每组数据,
输出字符串中每个单词包含的字母的个数。
样例输入
hello how are you.
样例输出
5 3 3 3
*** 提示已隐藏,点击上方 [+] 可显示 ***
分类
- 华中科技大学究生复试上机真题
-
1 #include <iostream> 2 #include <string> 3 using namespace std; 4 int main() 5 { 6 string ss; 7 while(getline(cin,ss)) 8 { 9 int n=0;int sum=0; 10 while(ss[n]!='.') 11 { 12 if(ss[n]==' ') 13 if(sum!=0) 14 { 15 cout<<sum<<" "; 16 sum=0; 17 } 18 if(ss[n]!=' ') 19 sum++; 20 n++; 21 } 22 cout<<sum<<endl; 23 } 24 }
字符串的查找删除
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:2798
解决:1101
- 题目描述:
-
给定一个短字符串(不含空格),再给定若干字符串,在这些字符串中删除所含有的短字符串。
- 输入:
-
输入只有1组数据。
输入一个短字符串(不含空格),再输入若干字符串直到文件结束为止。
- 输出:
-
删除输入的短字符串(不区分大小写)并去掉空格,输出。
- 样例输入:
- in#include int main(){printf(" Hi ");}
- 样例输出:
- #cludetma(){prtf("Hi");}
- 提示:
-
注:将字符串中的In、IN、iN、in删除。
天勤给出的答案是错的,没有考虑到“i nwdqwd”的情况,应该先删空格,然后在删“in”
这题我的代码天勤自己的OJ AC不了,九度的可以
1 #include<iostream> 2 3 #include<string> 4 using namespace std; 5 6 7 string low(string str) 8 { 9 for(int i=0;i<str.length();i++) 10 if(str[i]<='Z'&&str[i]>='A') str[i]=str[i]+'a'-'A'; 11 return str; 12 } 13 14 int main() 15 { 16 int n=0; 17 string s1,s2; 18 getline(cin,s1); 19 while(getline(cin,s2)) 20 { 21 22 string temp=low(s1); 23 int j=0; 24 while(j<s2.length()) 25 { 26 if(s2[j]==' ') 27 s2=s2.substr(0,j)+s2.substr(j+1,s2.length()); 28 else 29 j++; 30 } 31 j=0; 32 while(j<s2.length()) 33 { 34 if(low(s2.substr(j,s1.length()))==s1) 35 s2=s2.substr(0,j)+s2.substr(j+s1.length(),s2.length()); 36 else 37 j++; 38 } 39 cout<<s2<<endl; 40 } 41 return 0; 42 } 43 /************************************************************** 44 Problem: 1168 45 User: 2009declan 46 Language: C++ 47 Result: Accepted 48 Time:0 ms 49 Memory:1520 kb 50 ****************************************************************/
最长&最短文本分数: 1.5
标签
- 字符串处理
- 字符串长度
题目描述
输入多行字符串,请按照原文本中的顺序输出其中最短和最长的字符串,如果最短和最长的字符串不止一个,请全部输出。
输入格式
输入包括多行字符串,字符串的长度len,(1<=len<=1000)。
输出
按照原文本中的顺序输出其中最短和最长的字符串,如果最短和最长的字符串不止一个,请全部输出。
样例输入
hello
she
sorry
he
样例输出
he
hello
sorry
*** 提示已隐藏,点击上方 [+] 可显示 ***
分类
- 华中科技大学究生复试上机真题
-
1 #include<iostream> 2 #include<string> 3 using namespace std; 4 int main() 5 { 6 string s1[1000]; 7 int n=0; 8 while(getline(cin,s1[n])) 9 { 10 n++; 11 } 12 int max=s1[0].length(); 13 int min=s1[0].length(); 14 for(int i=1;i<n;i++) 15 { 16 if(s1[i].length()>max) max=s1[i].length(); 17 if(s1[i].length()<min) min=s1[i].length(); 18 } 19 for(int i=0;i<n;i++) 20 { 21 if(s1[i].length()==min) cout<<s1[i]<<endl;; 22 } 23 for(int i=0;i<n;i++) 24 { 25 if(s1[i].length()==max) cout<<s1[i]<<endl;; 26 } 27 return 0; 28 } 29
首字母大写分数: 1.5
标签
- 字符串处理
题目描述
对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。
在字符串中,单词之间通过空白符分隔,空白符包括:空格(' ')、制表符(' ')、回车符('
')、换行符('
')。
输入格式
输入一行:待处理的字符串(长度小于100)。
输出
可能有多组测试数据,对于每组数据,
输出一行:转换后的字符串。
样例输入
if so, you already have a google account. you can sign in on the right.
样例输出
If So, You Already Have A Google Account. You Can Sign In On The Right.
*** 提示已隐藏,点击上方 [+] 可显示 ***
分类
- 北京大学研究生复试上机真题
- WS :测试文件:/test0.out 结果:答案错误=======原因======当参考答案输出:wang Is A String-------时---------你的程序输出:Wang Is A String=================测试文件:/sample.out 结果:答案正确
- 想不通为什么会有第一个是小写的w的情况,估计是OJ错了
- 天勤上面的答案没有考虑到标点符号
- 给出自己的代码
- :
-
1 #include<iostream> 2 #include<string> 3 using namespace std; 4 int main() 5 { 6 string s; 7 int n=0; 8 while(getline(cin,s)) 9 { 10 if(s[0]>='a'&&s[0]<='z') s[0]=s[0]-('a'-'A');//先检查第一个 11 for(int i=0;i<s.length()-1;i++) 12 { 13 if(s[i]<'A'||(s[i]>'Z'&&s[i]<'a')||s[i]>'z') 14 if(s[i+1]>='a'&&s[i+1]<='z') 15 s[i+1]=s[i+1]-('a'-'A'); 16 } 17 cout<<s<<endl; 18 } 19 return 0; 20 }
字符串的反码分数: 1.2
标签
- 字符转换
题目描述
一个二进制数,将其每一位取反,称之为这个数的反码。下面我们定义一个字符的反码。如果这是一个小写字符,则它和字符'a’的距离与它的反码和字符'z’ 的距离相同;如果是一个大写字符,则它和字符'A’的距离与它的反码和字符'Z’的距离相同;如果不是上面两种情况,它的反码就是它自身。
举几个例子,'a’的反码是'z’;'c’的反码是'x’;'W’的反码是'D’;'1’的反码还是'1’;'$'的反码还是'$'。
一个字符串的反码定义为其所有字符的反码。我们的任务就是计算出给定字符串的反码。
输入格式
输入每行都是一个字符串,字符串长度不超过 80 个字符。如果输入只有!,表示输入结束,不需要处理。
输出
对于输入的每个字符串,输出其反码,每个数据占一行。
样例输入
Hello
JLU-CCST-2011
!
样例输出
Svool
QOF-XXHG-2011
*** 提示已隐藏,点击上方 [+] 可显示 ***
分类
- 吉林大学究生复试上机真题
-
1 #include<iostream> 2 #include<string> 3 using namespace std; 4 int main() 5 { 6 string s; 7 while(getline(cin,s)) 8 { 9 if(s[0]=='!'&&s.length()==1) break;//注意:只有一个“!” 10 string s1=s;//目的是复制长度 11 for(int i=0;i<s.length();i++) 12 { 13 if('a'<=s[i]&&s[i]<='z') 14 s1[i]='z'-(s[i]-'a'); 15 else if('A'<=s[i]&&s[i]<='Z') 16 s1[i]='Z'-(s[i]-'A'); 17 else s1[i]=s[i]; 18 } 19 cout<<s1<<endl; 20 } 21 return 0; 22 }
统计字符分数: 1
标签
- 字符串处理
- 统计字符
题目描述
统计一个给定字符串中指定的字符出现的次数。
输入格式
测试输入包含若干测试用例,每个测试用例包含2行,第1行为一个长度不超过5的字符串,第2行为一个长度不超过80的字符串。注意这里的字符串包含空格,即空格也可能是要求被统计的字符之一。当读到'#'时输入结束,相应的结果不要输出。
输出
对每个测试用例,统计第1行中字符串的每个字符在第2行字符串中出现的次数,按如下格式输出:
c0 n0
c1 n1
c2 n2
...
其中ci是第1行中第i个字符,ni是ci出现的次数。
样例输入
I
THIS IS A TEST
i ng
this is a long test string
#
样例输出
I 2
i 3
5
n 2
g 2
*** 提示已隐藏,点击上方 [+] 可显示 ***
分类
- 浙江大学研究生复试上机真题
-
1 #include<iostream> 2 #include<string> 3 using namespace std; 4 int main() 5 { 6 string a,b; 7 while(getline(cin,a)&&(a[0]!='#'))//getline(cin,str)读取一行 8 { 9 getline(cin,b); 10 int count[128]={0};//ASCII码有128种 11 for(int i=0;i<b.length();i++) 12 count[b[i]]++; 13 for(int i=0;i<a.length();i++) 14 cout<<a[i]<<" "<<count[a[i]]<<endl; 15 } 16 return 0; 17 } 18