实现指定步长循环后移字符串数组算法
来源:互联网 发布:js字符串match的用法 编辑:程序博客网 时间:2024/05/29 19:30
字符串数组 aaa[] ={'a','b','c','d','e','f','g','\0'}; 实现循环移动; 估计大家都会想到环形结构;对头,就是利用环形思路实现移动算法;
1. 利用环形越界处理方式
(iCurRPo+iStep) % iLen
求得移动下一位置
2. 循环何时结束? 移动到的位置的字符为下一个被移动的字符 , 依次类推无重复移动,只需要循环字符长度次即可
3. 针对循环到初始位置的处理; 循环一圈可能又回原有位置,这次需要从原有位置的下一位置开始循环处理,依次类推;
以下为测试通过的代码;也希望大家能留下更高效简洁的实现方式。
/* @pStr 指向数组的执政 @iStep 循环移动的步调 @实现按指定间隔向后循环移动字符数组中的字符; 环形实现思路;*/char* LoopMove(char *pStr,int iStep){int iLen = strlen(pStr);int iCurPos = 0 , iNextPos=0 , iLoop =0 ,iLoopBeg= 0;char p,q;p = q = pStr[iCurPos];while(iLoop < iLen ){iNextPos = (iCurPos+iStep) % iLen;if(iLoopBeg == iNextPos){////闭环移动一圈pStr[iNextPos] = p;iCurPos = ++iLoopBeg;p = pStr[iCurPos];}else {q = pStr[iNextPos];pStr[iNextPos] = p;p = q;iCurPos = iNextPos;}++iLoop;}return pStr;}
- 实现指定步长循环后移字符串数组算法
- 整数型的有序递增数组循环右移x位后,查找指定整数 算法
- 字符串分割后转换成指定类型的数组
- C# 字符串拆分数组后转为List 不用循环
- 数组循环右移算法
- 不规则步长数组创建
- 二维数组、指针、步长
- 字符串算法之字符串循环左移
- j2me游戏步长算法
- 实现字符串右移循环
- 数组循环移位算法(左旋字符串)【总结】
- 实现字符串循环右移n 位与左移n位(建立数组)
- 算法基础:数组指定规则排序问题(Golang实现)
- C++实现删除字符串中所有指定字符算法
- 数组循环左移P位算法
- 数组循环右移的算法
- 【算法编程】循环右移一个数组
- 【算法题】数组循环右移
- linux分区-df
- 记录下
- NetBeans下如何新建运行Java Web
- emacs配置
- Git使用
- 实现指定步长循环后移字符串数组算法
- 几种进程间的通信方式
- emacs命令表
- Java知识点。
- 去除MDI子窗体最大化时的默认图标
- win8 DCOM 中不存在WORD、EXCEL等OFFICE组件解决方案
- [每日一题] 11gOCP 1z0-053 :2013-10-12 RESULT_CACHE在哪个池?.............................44
- 初学bash,test学习遇到的问题,希望以后能找到答案
- Mybatis 中 $ 与 # 的区别