`
蒙面考拉
  • 浏览: 156053 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

字符串的循环移位

 
阅读更多

假设字符串:abcdefg

左循环两位:cdefgab

右循环两位:fgabcde

规律: AB->BA==((A的反转)(B的反转))的反转=(B的反转)的反转(A的反转)的反转=BA

 

1 // 将一个字符串中某个子串反序
2 void reverseOrder(char * str, int p, int q)
3 {
4      char temp;
5      while (p < q)
6     {
7 temp = str[p];
8          str[p] = str[q];
9          str[q] = temp;
10          p ++;
11          q --;
12     }
13 }
14 void shift_n(char * str, int n)
15 {
16      if ( !str)
17          return ;
18      int len = strlen(str);
19      int t = n % len;//循环移动的位数大于字符串的长度
20      reverseOrder(str, 0 , len - t -1 );
21      reverseOrder(str, len - t, len -1 );
22      reverseOrder(str, 0 , len -1 );
23 }

 

对于左循环:A=ab;B=cdefg;

对于右循环:A=abcde;B=fg;

对于上面的算法左右循环是相同的,只是AB字符串的划分不同而已。

分享到:
评论

相关推荐

    C语言中关于字符串左右循环移位的问题

    对C语言中字符串循环移位的问题进行详解,并给出两种方法求解。

    VB 字符串整体循环移位函数

    自定义字符串整体循环移位

    字符串处理常见算法实现

    插入排序、一个英文句子单词逆转,字符串循环移位、去重、全排列算法(递归和非递归实现)、KMP算法

    C语言实现字符串循环右移

    编写一个函数,作用是把一个char组成的字符串循环右移n个。比如原来是“abcdefghi”如果n=2,移位后应该是“hiabcdefgh” 函数头是这样的: //pStr是指向以'\0'结尾的字符串的指针

    基于字符串移位包含的问题详解

    代码如下所示: 代码如下:/************************************************************************//* 给定两个字符串s1和s2,要求判定s2是否能被s1做循环移位得到的字符串所包含例如,给定s1 = AABCD, s2 = ...

    数据结构-字符串.pptx

    字符串循环左移 4/88 给定一个字符串S[0…N-1],要求把S的前k 个字符移动到S的尾部,如把字符串"abcdef" 前面的2个字符'a'、'b'移动到字符串的尾 部,得到新字符串"cdefab":即字符串循环 左移k。 多说一句:循环...

    python字符串循环左移

    本文实例为大家分享了python字符串循环左移的具体代码,供大家参考,具体内容如下 字符串循环左移 给定一个字符串S[0…N-1],要求把S的前k个字符移动到S的尾部,如把字符串“abcdef”前面的2个字符‘a’、‘b’移动...

    简单的加密解密算法,混合了多种加密操作

    自己编写的一种简单加密解密算法,通过把多种算法进行组合。特点是同个字符串不同时间加密结果不同,混合了多种加密方式,很难用统计的方式对密文进行破解。 加密过程: ...5)整个字符串循环移位

    简单的加密解密算法,混合多种加密操作

    自己编写的一种简单加密解密算法,通过把多种算法进行组合。特点是同个字符串不同时间加密结果不同,混合了多种加密方式,很难用统计的方式对密文进行破解。 加密过程: 1)扩展字符串 ...5)整个字符串循环移位

    python实现整数的二进制循环移位

    1、利用字符串的format函数将int整数值转化为特定位数的二进制值 2、利用字符的切片操作实现循环位移 二、实现代码 # left circular shift #int_value是输入的整数,k是位移的位数,bit是整数对应二进制的位数 def ...

    C++ 循环移位简单加密

    ex:输入移动位数 1 输入语句:a 输出 b 输入语句: b 输出 c

    2050:例5.20字串包含.cpp

    对于一个字符串来说,定义一次循环移位操作为:将字符串的第一个字符移动到末尾形成新的字符串。 给定两个字符串s1 和s2 ,要求判定其中一个字符串是否是另一字符串通过若干次循环移位后的新字符串的子串。例如CDAA...

    LeetCode判断字符串是否循环-Leetcode-Java-:Leetcode-Java-

    LeetCode判断字符串是否循环 Leetcode-Java- 一.(Sort类): 350. Intersection of Two Arrays II a.首先用HashMap遍历一遍数组nums1,Key值储存数组元素,Value(初始值为1)值储存重复元素出现次数,每出现一次加1...

    自制数据存储_数据存储;for循环;移位寄存器的使用;_

    自制数据存储部分,路径创建 说明字符串(比如日期时间)写入;for循环+移位寄存器创建随机数组,并输出图表。适合新手参考

    wind0926#JAVA2020#面试题58 - II. 左旋转字符串1

    面试题58 - II. 左旋转字符串题目链接面试题58 - II. 左旋转字符串题目描述汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是

    第30课时.S7-200指令.第7节【移位循环指令_字符串指令上】.wmv

    西门子200PLC入门视频教程

    求解最长循环公共子序列问题的两个算法

    最长循环公共子序列(LCCS)是两个字符串在所有可能的循环移位操作下能得到的最长公共子序列(LCS)。针对穷举移位量求解LCCS效率过低的问题,设法对候选移位量进行筛选。通过证明循环移位操作对两字符串间LCS长度...

    汇编课后题上机题上机代码

    1、 试编写一个汇编程序,要求从键盘上接收若干位16...5、 试编写一程序,要求分别将存于DAX和DAY中的双字数据循环左移一位,并将移位后的两个双字数据相加,然后将结果存入RLT开始的字单元中(低位在前,高位在后)。

    西门子小型PLC-S7-200 SMART-系统手册

    目录 1. 产品概述 2.入门指南 3.安装 ... 8.14 移位与循环移位 8.15 字符串 8.16 表 8.17 定时器 8.18 子例程 8.19 PROFINET 9.通信 10.库 11.调速和故障排除 12.PID回路和整定 13.开环运动控制

    西工大noj答案完整版.doc

    116.循环移位 117.延伸的卡片 118.羊羊聚会 119.一维数组”赋值“ 120.一维数组”加法“ 121.勇闯天涯 122.右上角 123.右下角 124.圆及圆球等的相关计算 125.圆及圆球等相关计算 126.程序员添加行号 127.找出数字 ...

Global site tag (gtag.js) - Google Analytics