牛客机试题目3

1. 题目描述
输入一个整数,将这个整数以字符串的形式逆序输出
程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001

输入描述:
输入一个int整数
输出描述:
将这个整数以字符串的形式逆序输出

#include<iostream>
#include<stack>
using namespace std;

int main() {
	char c;
	stack<char> s1;
	while (cin >> c) {
		s1.push(c);
	}

	int len = s1.size();
	for (int i = 0; i < len;i++) {
		cout << s1.top();
		s1.pop();
	}
	
	return 0;
}

2.题目描述
写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。例如:
输入描述:
输入N个字符
输出描述:
输出该字符串反转后的字符串

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;

int main(){
    string inStr;
    while(cin>>inStr){
        reverse(inStr.begin(),inStr.end());
        cout<<inStr<<endl;
    }
    return 0;
}

3.题目描述
将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”
所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符
输入描述:
将一个英文语句以单词为单位逆序排放。
输出描述:
得到逆序的句子

#include<iostream>
#include<stack>
#include<string>
using namespace std;

int main(){
    string inStr;
    stack<string> s1;
    while(cin>>inStr){
        s1.push(inStr);
    }
    while(!s1.empty()){
        cout<<s1.top()<<" ";
        s1.pop();
    }
    return 0;
}

4.题目描述
给定n个字符串,请对n个字符串按照字典序排列。
输入描述:
输入第一行为一个正整数n(1≤n≤1000),下面n行为n个字符串(字符串长度≤100),字符串中只含有大小写字母。
输出描述:
数据输出n行,输出结果为按照字典序排列的字符串。

#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
int main(){
    
    int n;
    cin>>n;
    vector<string> s1;
    for(int i=0;i<n;i++){
        string inStr;
        cin>>inStr;
        s1.push_back(inStr);
    }
    sort(s1.begin(),s1.end());
    
    vector<string>::iterator it;
    for(it=s1.begin();it!=s1.end();it++){
        cout<<*it<<endl;
    }
    return 0;
}

5.题目描述
输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。
输入描述:
输入一个整数(int类型)
输出描述:
这个数转换成2进制后,输出1的个数

#include<iostream>
#include <bitset>
#include<algorithm>
using namespace std;

int main(){
    int num;
    while(cin>>num){
        string numStr=bitset<32>(num).to_string();
        cout<<count(numStr.begin(),numStr.end(),'1');
    }
    return 0;
    
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值