华为机试在线练习题

时间:2023-02-12 21:01:15

1、字符串反转

题目描述

写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。例如:

输入描述:

输入N个字符

输出描述:

输出该字符串反转后的字符串

示例1

输入

abcd

输出

dcba
思路:逆序输出即可

#include<iostream>
#include<string.h>
using namespace std;

int main(){
string str;
cin >> str;
for(int i = str.size()-1; i >= 0; i--){
cout << str[i];
}
}

2、进制转换

题目描述

写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )

输入描述:

输入一个十六进制的数值字符串。

输出描述:

输出该数值的十进制字符串。

示例1

输入

0xA

输出

10
#include<iostream>
using namespace std;

int main(){
int a;
while(cin>>hex>>a) //十六进制输入
cout << dec << a << endl; //将输入的数据用cin转换成十进制,八进制是oct
return 0;
}

3、字符个数统计

题目描述

编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127)。不在范围内的不作统计。

输入描述:

输入N个字符,字符在ACSII码范围内。

输出描述:

输出范围在(0~127)字符的个数。

示例1

输入

abc

输出

3
#include<iostream>
#include<set>

using namespace std;

int main(){ //利用set特性,不会存在相同元素
char c;
set<char> cSet;
while(cin >> c){
if(c >= 0 && c <= 127)
cSet.insert(c);
}
cout << cSet.size() << endl;
return 0;
}