您的位置:首页 > 编程语言

2017校招编程好未来

2017-08-21 10:43 344 查看
1.题目描述

将一句话的单词进行倒置,标点不倒置。比如 I like beijing. 经过函数后变为:beijing. like I

输入描述:

每个测试输入包含1个测试用例: I like beijing. 输入用例长度不超过100

输出描述:

依次输出倒置之后的字符串,以空格分割

示例1

输入

I like beijing.

输出

beijing. like I

C++

#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main(){
string s;
getline(cin,s);
vector<string> arr;
string curs="";
for(int i=0;i<s.size();i++){
if (s[i]==' '){
arr.push_back(curs);
curs="";
}else{
curs=curs+s[i];
}
}
if (curs!=""){
arr.push_back(curs);
}
cout<<arr[arr.size()-1];
for (int i=arr.size()-2;i>=0;i--){
cout<<" "<<arr[i];
}
return 0;
}


python

if __name__=="__main__":
a=raw_input().split()
for i in range(len(a)-1,-1,-1):
print a[i],


2.题目描述

输入两个整数 n 和 m,从数列1,2,3…….n 中随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来

输入描述:

每个测试输入包含2个整数,n和m

输出描述:

按每个组合的字典序排列输出,每行输出一种组合

示例1

输入

5 5

输出

1 4

2 3

5

python

def definesum(s,cur,a,m,n):
if(s==m):
for i in range(len(a)-1):
print a[i],
print a[-1]
for i in range(cur,n+1):#设置子序列起始位置,开始遍历
if s+i<=m:
a.append(i)#若当前和小于m,则继续遍历
definesum(s+i,i+1,a,m,n)#递归
a.remove(i)#删除起始位置,从下一个位置开始继续遍历
if __name__=="__main__":
n,m=map(int,raw_input().split())
a=[]
definesum(0,1,a,m,n)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  校招编程