字符串旋转

转载 2015年07月06日 23:27:28
菜鸟今天准备好好学习,开始刷题玩,先从简单的入手,拿起很久没有看的算法。
</pre><pre name="code" class="cpp">刚看了<a target=_blank href="http://weibo.com/julyweibo?s=6cm7D0" target="_blank" alt="研究者July" title="研究者July" style="text-decoration: none; color: rgb(0, 120, 182); border-color: rgb(210, 210, 210); font-size: 14px; line-height: 16px;">July</a>大神的博客,找了LeetCode上面的题练手
</pre><pre name="code" class="cpp">https://leetcode.com/problems/rotate-array/
</pre><pre name="code" class="cpp">反转的思想是,(0,1,2,3....n);
从第倒数第K位反转  那么先交换(0,n-k),再交换(n-k+1,n),最后交换(0,n)
</pre><pre name="code" class="cpp">class Solution
{
public:
	void rotate(vector<int>& nums, int k);
	void Swap(vector<int>& nums, int first, int end);
};
void Solution::Swap(vector<int>& nums, int first, int end)
{
	while (first < end)
	{
		swap(nums[first++], nums[end--]);
	}
}
void Solution::rotate(vector<int>& nums, int k)
{
	if (nums.size() == 0) return;
	k = k%nums.size();
	if (k == 0) return;
	Swap(nums, 0, nums.size() - k - 1);
	Swap(nums, nums.size() - k, nums.size() - 1);
	Swap(nums, 0, nums.size() - 1);

}

相关文章推荐

剑指offer面试题[42]-反转单词顺序VS左旋转字符串

题目1: 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”ab...

旋转字符串的三种算法

旋转字符串的三种算法

微软面试100题之26题:左旋转字符串

题目: 定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。 如把字符串abcdef 左旋转2 位得到字符串cdefab。请实现字符串左旋转的函数。 要求时间对长度为n 的字符串...

程序员编程艺术:第一章、左旋转字符串

第一章、左旋转字符串 作者:July,yansha。 时间:二零一一年四月十四日。 微博:http://weibo.com/julyweibo。 出处:http://blog....

字符串的旋转

题目描述给定一个字符串,要求将字符串的前若干(m)位字符移动到字符串的尾部。 **例如**:将字符串"abcdef"的前3个字符'a'、'b'和'c'移到字符串的尾部,得到"defabc"。 解法一:...

程序员面试题精选100题(21)-左旋转字符串

http://zhedahht.blog.163.com/blog/static/2541117420073993725873/ 题目:定义字符串的左旋转操作:把字符串前面的若干个字符移动到...

翻转单词顺序 VS 左旋转字符串43

题目一(翻转单词顺序):输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串”I am a student.”则输出”student....

字符串左旋右旋——三步旋转法和移相法

字符串左旋右旋——三步旋转法和移相法!(K个字符)

【剑指Offer学习】【面试题42:翻转单词顺序vs左旋转字符串】

题目一:输入一个英文句子,翻转句子中单词的顺序,但单词内字啊的顺序不变。为简单起见,标点符号和普通字母一样处理。举例说明例如输入字符串”I am a student. ”,则输出”student. a...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)