小米软开 1.83
第一题 数组移动
过了 0.83
这么解题有一定问题
第二题 2048
A 了
string leftMove(string str) { vector<int> arr; stringstream ss(str); int tem; while(ss >> tem) arr.push_back(tem); int m = arr.size(); stack<int> sta; for(int i=0; i<m; i++) { if(!sta.empty() && arr[i] == sta.top()) { sta.pop(); sta.push(2*arr[i]); if(++i < m && arr[i] != 0) sta.push(arr[i]); } else if(arr[i] != 0) sta.push(arr[i]); } string res = ""; m -= sta.size(); while(!sta.empty()) { res = to_string(sta.top()) + ' ' + res; sta.pop(); } for(; m>0; m--) res += "0 "; if(res.back() == ' ') res.pop_back(); return res; } string solution(vector < string > input) { string res = ""; for(auto &it:input) res += leftMove(it) + "\n"; return res; }#小米##笔试题目#