C++ 算法题中对于字符串的一些妙手
今天和大家分享一下某些 c++算法面试题中针对字符串的一些投机取巧的函数,亲测好用~~~~~~~~~~~
所以花费了点时间精力整理了一下,希望能够帮到你们~~~~~~~~~
1.find()函数
假设我们有字符串a 和 b,那么 a.find(b)是指在 a 这个字符串中查找 b 并返回 b 开头字母的位置,没查到就是-1
这个函数还是比较好用的,当你需要去找到一个字符串是否出现的时候可用,注意这里返回的下标,并不是字符串,那如何由下标得到字符串呢?
这里推荐第二个函数
2.substr()函数
这个应该大家并不陌生,而且用法也十分简单,用处就是截取某段字符串,而且注意返回值就是字符串。
3.isStingstream()函数
可以用在 getline 读取很长的字符串后使用 isstringstream 进行分割字符串。
他会自动把空格前和空格后的字符串进行分割,格式也是比较奇特,它本身也是一种数据类型
这个就比较好用了,对于输入的一些非常恶心的输入处理,就可以用下面这段代码,具体大家可以自行对着代码理解一下
4.reverse()函数
reverse 函数用于反转在[first,last)范围内的顺序(包括 first 指向的元素,不包括 last 指向的元素),reverse 函数没有返回值
简而言之,可以在许多条件下使用.
复杂度:reverse()函数无返回值,时间复杂度 O(n)
但是一定要注意,它反转的区间就是括号里的左右两区间,假设我要反转
a[1,2,3,4,5]中的 2~4,那么代码应该是 reverse(a+2,a+4+1),因为
它其实是反转区间[first,last)之间的
1.交换 vector 容器,字符数组,整形数组等等中的元素顺序
2.交换 string 字符串中元素的顺序
5.isalpha()函数和 isalnum()函数
isalpha()用来判断一个字符是否为字母,如果是字母则返回非零,否则返回零。
在 codeforces 等一些比较简单的代码题,就可以直接秒了,不用写 if 去判断啦
6.islower 函数和 isupper()函数
islower()用来判断一个字符是否为小写字母,也就是是否属于 a~z。
isupper()和 islower()相反,用来判断一个字符是否为大写字母。
7.tolower()函数与 toupper()函数
7.1 tolower()
tolower()函数是把字符串都转化为小写字母
7.2 toupper()
touppre()函数是把字符串都转化为大写字母
其中需要注意的是:这两个函数的声明在头文件<cctype>中
8.insert()函数
好了, 今天的分享就到这里了,还有补充的欢迎评论区交流哈~
如果有想看的算法面经也可以私聊我,想看的题目类型都可以哦~
最后看到这的小伙伴点个赞吧!你的点赞真的很重要!还有评论俺都会回的喔~
喜欢的朋友也可以点个关注,这样我每次更新都能及时的看见了哦!
好了,下次再见啦~~~
评论