资料:
swap(str1,str2); //或者str1.swap(str2)
swap(str1[0],str1[1]); // 交换str1的[0]和[1]
很全:
一、初始化
二、获取长度(length、size)
三、插入(insert)
四、替换(replace)
五、添加(append)
六、赋值(assign)
七、删除(erase)
八、剪切(substr)
九、比较(compare)
十、交换(swap)
十一、反转(reverse)
十二、数值转化(sto*)
十三、迭代器(iterator)
十四、查找(find)
C++ string用法_c++string的操作_wangpenghnu的博客-CSDN博客
自己写的:
- 用【打卡】牛客网:BM55 没有重复项数字的全排列-CSDN博客中模板的思路:交换swap的全排列,最后再去重。
- 毕竟没写过。
- 调试了很久,有些小细节没注意。
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param str string字符串
* @return string字符串vector
*/
void fun(vector<string> &res, string &str, int index){
if(index == str.size() - 1){
res.push_back(str);
return;
}
for(int i = index; i < str.size(); i++){
swap(str[i], str[index]);
fun(res, str, index+1); //粗心写成fun(res, str, i)
swap(str[i], str[index]);
}
}
vector<string> Permutation(string str) {
// write code here
vector<string> res;
fun(res, str, 0);
set<string> s(res.begin(),res.end());
res.assign(s.begin(), s.end());
return res;
}
};
模板的:
和这篇一样。
【打卡】牛客网:BM56 有重复项数字的全排列-CSDN博客