翻转单词顺序VS左旋转字符串
2015-06-15 22:45
169 查看
题目:输入一个英文句子 翻转句子中单词的顺序 但单词内字符的顺序不变 为了简单起见 标点符号和普通字母一样处理
例如“I am a student. " 则输出”student. a am I"
思路:先翻转句子 再翻转句子中的每个单词
题目:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部 请定义一个函数实现字符串左旋转操作的功能
比如输入字符串“abcdefg" 和数字2 该函数将返回左旋转2位得到的结果”cdefgab"
思路:以“abcdefg"为例 把它分为两部分 把前两个字符分到第一部分 后面的所有字符分到第二部分
先分别翻转这两部分 于是得到”bagfedc" 接下来再翻转这两部分于是就得到“cdefgab"
旋转k位于旋转k%n位效果一致
思路二:
字符串”abcdefg"假设再复制一遍“abcdefgabcdefg" 如果旋转2位即输出”cdefgab"
可以用一个数组存储两遍字符串 假设旋转k位 从这个数组中第(k%n)处输出n个字符。。。
例如“I am a student. " 则输出”student. a am I"
思路:先翻转句子 再翻转句子中的每个单词
<span style="font-family:Comic Sans MS;">#include <iostream> using namespace std; void reserve(char *start, char *end) { if (start == NULL || end == NULL) return; while (start < end) { char t = *start; *start = *end; *end = t; start++; end--; } } char * reservesentence(char *s) { if (s == NULL) return NULL; char *start = s; char *end = s; while (*end != '\0') end++; reserve(start, end - 1); start = end = s; while (*end != '\0') { if (*start == ' ') { start++; end++; } else if (*end == ' ' || *end == '\0') { reserve(start, --end); start = ++end; } else end++; } return s; } int main() { char *s = new char[100]; cin.getline(s,100); int n = strlen(s); s = reservesentence(s); cout << s << endl; delete[] s; return 0; }</span>
题目:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部 请定义一个函数实现字符串左旋转操作的功能
比如输入字符串“abcdefg" 和数字2 该函数将返回左旋转2位得到的结果”cdefgab"
思路:以“abcdefg"为例 把它分为两部分 把前两个字符分到第一部分 后面的所有字符分到第二部分
先分别翻转这两部分 于是得到”bagfedc" 接下来再翻转这两部分于是就得到“cdefgab"
旋转k位于旋转k%n位效果一致
思路二:
字符串”abcdefg"假设再复制一遍“abcdefgabcdefg" 如果旋转2位即输出”cdefgab"
可以用一个数组存储两遍字符串 假设旋转k位 从这个数组中第(k%n)处输出n个字符。。。
相关文章推荐
- 快速获得服务器基本信息(debian centos)shell脚本
- Linux下使用MySQL——忘记root密码及修改MySQL默认编码
- sdnu 1206 蚂蚁感冒
- 心跳包机制(★firecat推荐★)
- WebRequest 对象的使用
- hiho一下 第五十周 (求欧拉路径)
- CentOS 5.5安装SVN(Subversion)
- find选项详解
- 1180:循环赛日程表
- UVALive - 3693 Balancing the Scale 枚举 + 状态压缩
- Android ActionBar完全解析,使用官方推荐的最佳导航栏(下)
- Maven-setting.xml详解
- 黑马程序员——Java基础---正则表达式
- 如何把握好你的黄金职场四年
- 提高 Vim 使用效率的 12 个技巧
- 查看锁
- Android ActionBar完全解析,使用官方推荐的最佳导航栏(上)
- Entity Framework之问题收集
- 构建之法第10,11,12章读后感
- 42Exchange 2010升级到Exchange 2013-证书申请配置