字符串
删除末尾字符
1.str = str.substr(0, str.length() - 1);
2.str.erase(str.end() - 1);
3.str.pop_back();
判断字符串里面是否含有某个字符串?
c++
1 | string a="abcdefghigklmn"; |
字符串替换
string.replace(起始index,结束index,代替字符串)
c++
1 | text.replace(i,j-i+1, dist[s]); leetcode1410 |
反转字符串
c++
1 | reverse(s.begin(), s.end()) |
分割字符串
python
1 | split(sep, num) |
分割英文句子为单词并保存
c++
1 | vector<string>res; |
判断A是不是B的前缀
B.substr(0,A.size())==A
substr超过也不会报错,比如A.size>B.size,就会取B
字母专题
isalpha
isalpha()用来判断一个字符是否为字母,如果是字符则返回非零,否则返回零。
c++
1 | cout << isalpha('a');//返回非零 |
容器
vector获取值对应的索引
c++
1 | vector<int>::iterator p=find(cur.begin(),cur.end(),queries[i]); |
vector指定位置插入
c++
1 | b.insert(b.begin(),q); 在首部插入 |
将一个vector s1插入到另一个vector s2
c++
1 | s2.insert(s2.end(),s1.begin(),s1.end()) |
int转string
algorithm头文件
string to_string (int val);
图编程
1.以u为顶点出发寻找与u,v能构成三角形的顶点w是,需要遍历u的临边,要注意过跳过v,添加if(v==w)continue
2.变量的作用域重叠,导致后来定义会覆盖掉之前的,应定义新的变量
3.入队出队寻找followers时,忘记对访问过的边做已访问标记,导致队列不会走空,进入无限循环,运行时间很久,诊断发现内存不断增加。
max_element() 和 min_element()
在头文件 #include
例子:
c++
1 | vector<int>a; |
VS使用
- 开启诊断 alt+ctrl+f2
2.找不到 #include <graphics.h>,下载easyx https://easyx.cn/
DFS与BFS
DFS --stack–O(h)(根据树的高度)–不具最短路–恢复现场(恢复到之前的状态)–剪枝(可行性剪枝、最优性剪枝)
BFS --queue–O()(宽度)–最短路
DFS:经典题目:排练数字、N-皇后