中国电信云计算 第三题

不吐不快,中国电信云计算最后一道题的输入真是太脑残了。

刚开始没看具体,按常规套路输入数组应该是 2 4 -2 5 -6 写完代码,运算一直不通过,得

回头一看输入竟然是[2, 4, -2, 5, -6]??

您就不能老老实实的按常规来吗,输入个字符串还要去迭代了掐头去尾去逗号再加到list里面,

简简单单一道题搞得最后才发现处理输入是最脑残的,佛了🙄

#天翼云##吐槽#
全部评论
最恐怖的是逗号后面还有个空格,我想了半个多小时🤣
点赞
送花
回复
分享
发布于 2019-09-18 22:26
arr = eval(input()) 就搞定了
点赞
送花
回复
分享
发布于 2019-09-18 22:34
滴滴
校招火热招聘中
官网直投
我弄个半个小时。。没搞定输入
点赞
送花
回复
分享
发布于 2019-09-18 22:26
刚刚发现改过来了,弄了半天输入不对
点赞
送花
回复
分享
发布于 2019-09-18 22:26
同感,以前没遇到这种,一直以为一个个输,搞了20多分钟。。
点赞
送花
回复
分享
发布于 2019-09-18 22:27
还好之前刷牛客的有赞试题是这样做数组输入的😂
点赞
送花
回复
分享
发布于 2019-09-18 22:28
一样,输入搞了半天。。。
点赞
送花
回复
分享
发布于 2019-09-18 22:28
这题出题人就是想考处理输入输出吧。。。
点赞
送花
回复
分享
发布于 2019-09-18 22:31
#include<iostream> #include<stdio.h> #include<algorithm> #include<vector> #include<math.h> #include<string> #include<string.h> #include<queue> #include<list> using namespace std; int q,ans,n,temp; vector<int>arr; string s; int main() { getline(cin,s); for(int i=1;i<s.length();i++) { if(s[i]==',') arr.push_back(temp),temp=0,i++; else if(s[i]=='-') temp=-(s[++i]-'0'); else if(s[i]==']') { arr.push_back(temp); break; } else temp=temp*10+s[i]-'0'; } q=ans=arr[0]; for(int i=1;i<arr.size();i++) { if(q<0) q=arr[i]; else q+=arr[i]; ans=max(ans,q); } cout<<ans<<endl; return 0; }
点赞
送花
回复
分享
发布于 2019-09-18 22:35
我也傻了,没想到输入是那样的
点赞
送花
回复
分享
发布于 2019-09-18 22:46
        String input = sc.nextLine();         input = input.replace("["," ");         input = input.replace("]"," ");         input = input.trim();         String[] num = input.split(", ");
点赞
送花
回复
分享
发布于 2019-09-18 22:50
#include <iostream> #include <vector> #include <sstream> using namespace std; // 字符串分割函数 void split(const string& s, vector<int>& sv, const char flag = ' ') { sv.clear(); istringstream iss(s); string temp; while (getline(iss, temp, flag)) { sv.push_back(stoi(temp)); } return; } int main(){ int start, end; vector<int> vec; string s, str; getline(cin, s); for(int i = 0; i < s.size(); i++){ if(s[i] == '[') start = s.find_first_of('['); if(s[i] == ']') end = s.find_last_of(']'); } for(int i = start + 1; i < end; i++) str += s[i]; split(str, vec, ','); cout << "验证输入\n"; for(auto x : vec) cout << x << ' '; return 0; }
点赞
送花
回复
分享
发布于 2019-09-19 17:01

相关推荐

1 6 评论
分享
牛客网
牛客企业服务