<编程之法>1.1 字符串旋转
来源:互联网 发布:浙江大学王灿数据挖掘 编辑:程序博客网 时间:2024/06/06 19:13
题目:
给定一个字符串,左旋转m个字符,输出旋转后的字符串。
例如 “abcdef” 左旋转3个字符后成为 “defabc”
解决办法:三步反转
将“abcdef”看成两部分 X=“abc” Y=“def” 先对X反转,再对Y反转,然后整体反转。
代码:
void reverseString(char *s, int bg, int ed){while (bg < ed){char tmp = s[bg];s[bg++] = s[ed];s[ed--] = tmp;}}
void leftLotateString(char *s, int n, int m){reverseString(s, 0, m - 1);reverseString(s, m, n - 1);reverseString(s, 0, n - 1);}
单词翻转:
输入一个英文句子,将句子中的单词翻转。例如: 输入“I am a student.” 输出 “student. a am I”
解决办法:先将每个单词反转,然后将整个句子反转。
void reverseWord(char *s){char *bg = s, *ed=s,*p = s;while (*p != '\0'){if (*p == ' '){ed = p - 1;while (bg < ed){char t = *bg;*bg++ = *ed;*ed-- = t;}bg = p + 1;}++p;}ed = p - 1;while (bg < ed){char t = *bg;*bg++ = *ed;*ed-- = t;}reverseString(s, 0, strlen(s)-1);}
阅读全文
0 0
- 《编程之法》1.1字符串的旋转
- <编程之法>1.1 字符串旋转
- 编程之法(字符串旋转)
- 编程之法之-字符串的旋转
- 《编程之法》练习题-1.1字符串的旋转
- 编程艺术之1.1旋转字符串_test3
- 编程之美:旋转字符串
- 编程之美---旋转字符串
- 编程艺术之旋转字符串
- 『《编程之法》读书笔记』——字符串旋转
- 编程珠玑之左旋转一个字符串
- 编程珠玑 旋转字符串
- 【程序员编程艺术】学习记录1:左旋转字符串之指针翻转法
- 【程序员编程艺术】学习记录2:左旋转字符串之循环移位法
- 字符串的旋转——《编程之法》课后题答案
- [编程之美-09]字符串的旋转问题
- [编程之美-01]字符串的旋转问题
- 字符串之旋转词
- 谨以此文献给正在面临选择的你
- 前端面试题<1>
- 关于我博客中翻译文章的说明
- 如何退出vim编辑器
- 大众点评 cat 项目访问监控 部署(windows环境)
- <编程之法>1.1 字符串旋转
- 【Linux】线程(概念、特点、线程控制代码--创建/等待/终止、分离与结合属性)
- Decode Ways
- 图片实现放大镜效果
- 数据段、代码段、堆栈段、BSS段的区别
- Spring配置bean的详细知识
- WCF接口(简单从数据库查询数据 )
- Android学习笔记之动画篇(视图动画)
- Git命令