字符串旋转

转载 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);

}

判断一个字符是否是另一个字符的旋转字符串

 方法一:将字符串1与字符串1连接,再判断字符串2是否为连接后的字符串1的子字符串,可以使用库函数实现。 #include #include #include void revovle(...
  • ranxiaoxu123
  • ranxiaoxu123
  • 2015年09月15日 16:58
  • 465

旋转字符串;编程珠玑第二章;rotate a one-dimensional vector;循环移位数组;编程之美

一:问题描述: 编程珠玑第二章的第二个问题是字符串(或者理解为向量)旋转问题,具体描述如下: rotate a one-dimensional vector of n elements left...
  • jiqiren007
  • jiqiren007
  • 2011年05月30日 10:07
  • 2865

编程之法之-字符串的旋转

字符串的旋转     本文博客是基于july大神的著作《编程之法-面试和算法心得》中的字符串一章的笔记。july,可以说从大一开始就一直读他的博客,从最基础的算法,到后来听起来高大上的机器学习算...
  • u013473520
  • u013473520
  • 2015年10月24日 16:09
  • 462

字符串左右旋转问题

字符串旋转详解
  • u010246947
  • u010246947
  • 2017年02月04日 11:44
  • 224

判断一个字符串是否为另外一个字符串旋转之后的字符串。 例如:给定s1 = AABCD和s2 = BCDAA,返回1,给定s1=abcd和s2=ACBD,返回0.

#include #include #include int judge(char str1[],char str2[]) { int i = 0; int j = 0; ...
  • qq_39947431
  • qq_39947431
  • 2017年11月05日 12:48
  • 152

算法导论 32.4-5 字符串的循环旋转问题

题目        根据这个题目的意思,我们来做一点小改变:即给定字符串s1和s2(长度分别为n,m),判断s2是否是s1的一次移位而生成的字符串的子串。之所以这样改变,是因为在这个问题的解法中...
  • zilingxiyue
  • zilingxiyue
  • 2015年04月29日 19:15
  • 737

字符串旋转

问题: 把字符串前面的若干个字符移动到字符串的尾部。如把字符串abcdef前2位字符移到后面得到字符串cdefab。要求时间对长度为n的字符串操作的复杂度为O(n),辅助内存为O(1)。 ...
  • daweibayu123
  • daweibayu123
  • 2013年10月10日 12:30
  • 274

字符串旋转(续)

字符串左旋上次说到字符串旋转的事情,不过最简单直接的方法还是将字符串一步一步的移动直到满足条件,下面就来看一下吧:void rotate_left(char *str, int k) { a...
  • jhcconan614
  • jhcconan614
  • 2016年11月10日 17:32
  • 121

c++-字符串旋转

题目描述 对于一个字符串,和字符串中的某一位置,请设计一个算法,将包括i位置在内的左侧部分移动到右边,将右侧部分移动到左边。 给定字符串A和它的长度n以及特定位置p,请返回旋转后的...
  • hahachenchen789
  • hahachenchen789
  • 2017年12月15日 10:23
  • 32

C++字符串旋转3种方法实现

//左旋转字符串abcdefgh->cdefghab //循环递归法 #include #include using namespace std; void runstring(char *st...
  • GrialM
  • GrialM
  • 2015年05月29日 20:15
  • 423
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:字符串旋转
举报原因:
原因补充:

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