题目描述
请你实现一个简单的字符串替换函数。原串中需要替换的占位符为"%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);
}