恆生電子公司的一道筆試題,有一個字串由*號和其他字母組成,請提供函式將字串頭部的*號全部移到字串的尾部(***aqer*f轉換成aqer*f***)
阿新 • • 發佈:2018-12-14
現場筆試的時候沒有寫出來,筆試之後想了一下,就編寫了一下,用的方法很簡單,主要用vector實現的。以下貼上自己編的原始碼:
#include<iostream> #include<string> #include<vector> using namespace std; int main() { string str1; cin>>str1; vector<char> sr; vector<char> sr1; vector<char> tar; int n=0; int m=0; int len=str1.size()-1; for(int i=0;i<str1.size();i++) { if(n==0&&str1[i]=='$') { m++; sr.push_back(str1[i]); } else { n++; sr1.push_back(str1[i]); } } for(int i=0;i<sr1.size();i++) { tar.push_back(sr1[i]); } for(int j=0;j<sr.size();j++) { tar.push_back(sr[j]); } for(int t=0;t<tar.size();t++) { cout<<tar[t]; } return 0; }