歡聚時代(YY)2019校招-推薦系統開發(C++)A卷程式設計題解
阿新 • • 發佈:2019-01-08
據說都是劍指offer原題,但沒用劍指offer的方法寫(因為沒怎麼背答案)。
1、特定字元替換為20%
因為輸入沒有限制為char陣列,也沒說不能開新陣列,所以沒有在原有記憶體空間替換,用string遍歷一把做替換,生成一個新的string.
#include<iostream> #include<string> using namespace std; string solve(const string &str) { int len=str.size(); string res=""; for(auto i=0;i<len;++i){ if(str[i]=='#') res += "%20"; else res.push_back(str[i]); } return res; } int main() { string str; while(cin>>str) cout<<solve(str)<<endl; return 0; }
2、排序陣列,奇數在前半部分,按升序排,偶數在後半部分,按降序排
直接stl sort函式過了。輸入比較坑。
#include<iostream> #include <vector> #include <algorithm> using namespace std; int cmp(const int&a,const int &b){ if((a%2)!=0){ if(b%2==0) return true; else return a<b; }else{ if(b%2!=0) return false; else return a>b; } } int main() { vector<int> v; int n; char c; while((c=getchar())&&(c==' '||(c<='9'&&c>='0'))) { ungetc(c,stdin); cin>>n; v.push_back(n); } sort(v.begin(),v.end(),cmp); for(int i=0;i<v.size()-1;++i){ cout<<v[i]<<" "; } cout<<v[v.size()-1]<<endl; return 0; }