1. 程式人生 > >【去哪兒】字串替換

【去哪兒】字串替換

 

題目描述

請你實現一個簡單的字串替換函式。原串中需要替換的佔位符為"%s",請按照引數列表的順序一一替換佔位符。若引數列表的字元數大於佔位符個數。則將剩下的引數字元新增到字串的結尾。

給定一個字串A,同時給定它的長度n及引數字元陣列arg,請返回替換後的字串。保證引數個數大於等於佔位符個數。保證原串由大小寫英文字母組成,同時長度小於等於500。

測試樣例:

"A%sC%sE",7,['B','D','F']
返回:"ABCDEF"
string formatString(string A, int n, vector<char> arg, int m) {
	// write code here
	int sum = 0;
	for (int i = 0; i<n; i++)
	{
		if (A[i] == '%')
		{
			i++;
			A[i] = arg[sum];
			sum++;
		}
	}
	int len = sum ;
	int j = 0;
	int i = 0;
	for(; i<n-sum; i++)
	{
		if (A[i] == '%'||A[j]=='%')
		{
			while (A[j] == '%')
				j++;
		}

		A[i] = A[j];
		j++;
	}

	for (; sum<m&&i<n; sum++,i++)
		A[i] = arg[sum];

	for (; sum < m; sum++)
		A += arg[sum];
	return A.substr(0,n-2*len+m);
}