字符串翻转
来源:互联网 发布:淘宝店铺怎么传图片 编辑:程序博客网 时间:2024/06/05 10:18
暴力翻转
#include<iostream>#include<string>using namespace std;void LeftShiftOne(string &s, int n){<span style="white-space:pre"></span>char t = s[0]; //保存第一个字符<span style="white-space:pre"></span>for (int i = 1; i < n; i++)<span style="white-space:pre"></span>{<span style="white-space:pre"></span>s[i - 1] = s[i];<span style="white-space:pre"></span>}<span style="white-space:pre"></span>s[n - 1] = t;}void LeftRotateString(string &s, int n, int m){<span style="white-space:pre"></span>while (m--)<span style="white-space:pre"></span>{<span style="white-space:pre"></span>LeftShiftOne(s, n);<span style="white-space:pre"></span>}}int main(){<span style="white-space:pre"></span>string s = "abcdefg";<span style="white-space:pre"></span>LeftRotateString(s, s.size(), 3);<span style="white-space:pre"></span>cout << s << endl;<span style="white-space:pre"></span>system("pause");<span style="white-space:pre"></span>return 0;}
另一种解法
#include<iostream>#include<string>using namespace std;void reverse(string &s, int from, int to){while (from < to){int t = s[from];s[from++] = s[to];s[to--] = t;}}void shift(string &s, int n, int m){m = m % n;reverse(s,0,m-1);reverse(s, m, n - 1);reverse(s, 0, n - 1);}int main(){string s = "abcdefg";//cout << s << endl;//cout << strlen(s) << endl;shift(s, s.size(), 3);cout << s << endl;system("pause");return 0;}
0 0
- 翻转字符串
- 翻转字符串
- 字符串翻转
- 字符串翻转
- 翻转字符串
- 翻转字符串
- 字符串翻转
- 翻转字符串
- 翻转字符串
- 字符串翻转
- 翻转字符串
- 字符串翻转
- 翻转字符串
- 字符串翻转
- 翻转字符串
- 字符串翻转
- 字符串翻转
- 字符串翻转
- windows 不能在本地计算机中起动Tomcat参考特定错误代码4
- POJ 2531-Network Saboteur(dfs+剪枝)
- 南阳理工OJ 迷宫寻宝(一)DFS
- 最小二乘法2个变量
- 黑马程序员——Java概述
- 字符串翻转
- (ZT)ATL:连接点及接收事件的两种方法
- [经典面试题][淘宝]求首尾相连数组的最大子数组和
- aoj0558解题报告(广度优先搜索)
- 博客之星的评选结束了,为互联网后端的技术大牛们鸣不平
- android应用的界面编程
- SGU 101 Domino
- 1.HCNA-HNTD——企业网络架构介绍
- 安卓仿iphone-ibooks的反转视图特效