《程序员面试金典》--反转字符串
来源:互联网 发布:大数据图片 编辑:程序博客网 时间:2024/04/30 05:41
题目描述:
请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量),给定一个string iniString,请返回一个string,为翻转后的字符串。保证字符串的长度小于等于5000。
测试样例:
"This is nowcoder"返回:"redocwon si sihT"
题目分析:
这道题目难度不是很大,首先可能会想到,重现建立一个字符串数组,然后遍历字符串,把字符反方向放进字符串数组中,这样实现可以,但是需要O(N)的空间复杂度。
可以在同一个字符串上实现反转,头尾的字符互换位置,这样只需要O(1)的时间复杂度,在写程序的时候要注意边界条件,对应的位置是否正确,代码实现如下:
代码:
string reverseString(string iniString) {int size=iniString.size(); int beg=0; --size; while(beg<size) { char ch=iniString[beg]; iniString[beg]=iniString[size]; iniString[size]=ch; ++beg; --size; } return iniString;
}扩展:
如果要实现字符串的分段反转,比如“you love i”反转成“i love you”,可以两次反转,首先整体反转,然后再部分反转。
0 0
- 《程序员面试金典》--反转字符串
- 《程序员面试金典》--判断反转字符串
- 《程序员面试金典》--像素反转
- 程序员面试金典-8.反转字串
- 程序员面试金典-6.像素反转
- [程序员面试金典]-链表反转
- 面试中的字符串反转
- 《程序员面试金典》之压缩字符串
- 程序员面试金典-数组和字符串
- [程序员面试金典]1001.字符串变换
- 《程序员面试金典》--基本字符串压缩
- 《程序员面试金典》基本字符串压缩
- 【程序员面试金典】数组与字符串
- 【程序员面试金典】基本字符串压缩
- [程序员面试金典-查找-]找出字符串
- 面试- 字符串反转 单词不反转
- 求职面试(字符串反转,单词反转)
- 面试常见题目,字符串反转
- PHPCMS v9 将消息提醒改为类似公告顶端上面提示。
- [leetcode]two sum (遍历 哈希)
- poj 2229
- CentOS 6 下启动ORACLE 11gR2
- Caffe AlexNet网络
- 《程序员面试金典》--反转字符串
- 对字符进行排序
- JS中的prototype
- 在dos命令窗口远程修改自己的FTP密码
- 详解CSS3特性@Media如何实现响应式设计
- Half Life 2 Source 引擎介绍
- iOS学习笔记27-iOS中http请求使用cookie
- Java中的private、protected、public和default的区别
- Vim 实用技术,第 2 部分: 常用插件