1. 程式人生 > >恆生電子公司的一道筆試題,有一個字串由*號和其他字母組成,請提供函式將字串頭部的*號全部移到字串的尾部(***aqer*f轉換成aqer*f***)

恆生電子公司的一道筆試題,有一個字串由*號和其他字母組成,請提供函式將字串頭部的*號全部移到字串的尾部(***aqer*f轉換成aqer*f***)

  現場筆試的時候沒有寫出來,筆試之後想了一下,就編寫了一下,用的方法很簡單,主要用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;
}