春招随笔
如何接受一串以逗号做分隔符的数组
这是我在做虾皮的笔试时遇到的小问题,当时纠结了很久,可能这就叫菜吧。
输入形式
8,1,5,2,7
(以回车做结束符)
思路
1.排除接收空字符串的情况,在这一题中可以有这样的假设,如果传入的数据是空值,那么将没有意义。
2.我们可以默认第一个接收的数据就是数字,使用push_back入栈。
3.接下来接收的数据有两种情况,一种是逗号,说明接收的数据并未结束,还有一种是’\n’,回车键,表示接收的数据结束了,即跳出while循环,数据接收完毕。
Code
有了上面的思路,那么代码其实就很简单了!
vector<int> A;
while(cin >> x){
//直接接收第一个字符作为需要判断的
A.push_back(x);
if(cin.get()=='\n'){
break;
}
else {
getchar();
}
}
完整的代码大家可以运行一下:
不要忘记vector头文件哦!
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
vector<int> A;
int main(){
int x,res,r=0;
while(cin >> x){
//直接接收第一个字符作为需要判断的
A.push_back(x);
if(cin.get()=='\n'){
break;
}
else {
getchar();
}
}
for(int i=0;i<A.size();i++){
for(int j=i+1;j<A.size();j++){
res=A[i]+A[j]+i-j;
if(res>r) r=res;
}
//cout<<A[i]<<endl;
}
cout<<r<<endl;
return 0;
}