链表、队列、栈和字符串的相关应用(四)字符串的替换

来源:互联网 发布:韩家炜 数据挖掘 pdf 编辑:程序博客网 时间:2024/05/16 14:42

知识点:字符串

题目:

请你实现一个简单的字符串替换函数。原串中需要替换的占位符为"%s",请按照参数列表的顺序一一替换占位符。若参数列表的字符数大于占位符个数。则将剩下的参数字符添加到字符串的结尾。

给定一个字符串A,同时给定它的长度n及参数字符数组arg,请返回替换后的字符串。保证参数个数大于等于占位符个数。保证原串由大小写英文字母组成,同时长度小于等于500。

测试样例:
"A%sC%sE",7,['B','D','F']
返回:"ABCDEF"
思路:查询“%s”,用参数字符replace掉,如果参数字符还有剩余,push_back加入后续的字符即可。
代码:
class StringFormat {public:    string formatString(string A, int n, vector<char> arg, int m) {        // write code here        int i = 0;        int pos = A.find("%s");        while(pos != string :: npos)             //npos 是一个常数,用来表示不存在的位置,常和find一起用        {            //string &replace(int p0, int n0,int n, char c);            //删除p0开始的n0个字符,然后在p0处插入n个字符c            A.replace(pos,2,1,arg[i++]);            pos = A.find("%s", pos+1);        }        while(i < m)            A.push_back(arg[i++]);        return A;    }};


原创粉丝点击