几个经典的字符串操作算法
2013-08-07 16:24
323 查看
1、编写函数,实现把一个char组成的字符串循环右移n位。如abcdehi,n=2,则hiabcde。
示例代码
View Code?
2、输入一行字符串,找出其中出现的相同且长度最长的字符串,输出它及其首字符的位置。如yyabcdabjcabceg,则输出为abc,3。
大体思路:把字符串yyabcdabjcabceg拆解:
yyabcdabjcabceg
yabcdabjcabceg
abcdabjcabceg
...
ceg
eg
g
然后对字符串进行排序,比较相邻字符串的前驱,求最长的共公前驱。
在我们的程序中的体现,我们没有用这种方法,因为这种方法在排序中会用很多时间。我们借用了C++的实现函数find来巧妙的实现。
注:basic_string::substr
basic_string substr(size_type pos = 0, size_type n = npos) const;
The member function returns an object whose controlled sequence is a copy of up to n elements of the controlled sequence beginning at position pos.
返回一个从指定位置开始,并具有指定长度的子字符串。
参数
pos 必选。所需的子字符串的起始位置。字符串中第一个字符的索引为 0。
n 可选项。返回的子字符串中包含的字符数。
备注 如果 n 为 0 或负数,将返回一个空字符串。如果没有指定该参数,则子字符串将延续到字符串的结尾。
在VS中测试,如是n是负数或大于主串的总长度,则输出是pos开始到主串末尾的字符。
示例代码
View Code?
3、实现strstr()功能。如主串是12345678,子串是234,则返回2345678。
示例代码
View Code?
4、将一句话中的单词倒置,标点符号不倒换。如“i come from tianjin.”,倒换后变成“tianjin. from come i”。
大体思路:先把整个字符串调整,再针对每个单词进行调整。
示例代码
View Code?
5、求一个字符串中连续出现次数最多的子串。
大体思路:如abcbcbcabc,则把字符串切割成:
abcbcbcabc
bcbcbcabc
cbcbcabc
bcbcabc
cbcabc
bcabc
...
bc
c
然后,从第一个子串开始到最后一个子串,将当前串与后面的每个子串进行字符匹配,并统计。
示例代码
View Code?
示例代码
View Code?
大体思路:把字符串yyabcdabjcabceg拆解:
yyabcdabjcabceg
yabcdabjcabceg
abcdabjcabceg
...
ceg
eg
g
然后对字符串进行排序,比较相邻字符串的前驱,求最长的共公前驱。
在我们的程序中的体现,我们没有用这种方法,因为这种方法在排序中会用很多时间。我们借用了C++的实现函数find来巧妙的实现。
注:basic_string::substr
basic_string substr(size_type pos = 0, size_type n = npos) const;
The member function returns an object whose controlled sequence is a copy of up to n elements of the controlled sequence beginning at position pos.
返回一个从指定位置开始,并具有指定长度的子字符串。
参数
pos 必选。所需的子字符串的起始位置。字符串中第一个字符的索引为 0。
n 可选项。返回的子字符串中包含的字符数。
备注 如果 n 为 0 或负数,将返回一个空字符串。如果没有指定该参数,则子字符串将延续到字符串的结尾。
在VS中测试,如是n是负数或大于主串的总长度,则输出是pos开始到主串末尾的字符。
示例代码
View Code?
示例代码
View Code?
大体思路:先把整个字符串调整,再针对每个单词进行调整。
示例代码
View Code?
大体思路:如abcbcbcabc,则把字符串切割成:
abcbcbcabc
bcbcbcabc
cbcbcabc
bcbcabc
cbcabc
bcabc
...
bc
c
然后,从第一个子串开始到最后一个子串,将当前串与后面的每个子串进行字符匹配,并统计。
示例代码
View Code?
相关文章推荐
- 字符串操作的几个经典实现
- C语言之基本算法39—字符串经典操作
- C语言经典算法-字符串的颠倒
- 经典的字符串模式匹配算法KMP算法
- 找工作知识储备---数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- iOS开发·必会的算法操作:字符串数组排序+模型对象数组排序
- 记录几个经典的字符串hash算法
- 字符串操作算法
- 【算法入门经典】 字符串处理部分总结
- 积跬步至千里——算法强化训练(5)关于类的几个操作
- php中的几个字符串操作函数strtoupper strtolower ucwords ucfirst lcfirst函数
- 数据结构与算法 - 两个指针搞定字符串操作
- 【LeetCode】字符串反转函数的几个算法 Reverse String
- ACM经典算法之字符串处理:字符串查找
- 几个面试经典算法题Java解答
- 数据结构——算法之(010)( 字符串的左旋转操作)
- 一个非常经典的算法查找字符串中每个字符的个数。
- [string]字符串中几个比较难的算法和容易搞混的题目
- 【经典算法】:用字符串模拟计算器的生成
- 【经典算法】:字符串转换为int型