java两种方式实现“将字符串前m位移到字符串的第n位之后”
来源:互联网 发布:移动感知测试软件 编辑:程序博客网 时间:2024/05/20 08:26
最近看了《编程之法:面试和算法心得》这本书,被各种高深的算法给膜拜了(本人职场小白,开发经验有限,抱着一颗学习的心,向大神学习),在这里整理了书中的部分算法,主要有两个目的:
1、做记录,为了以后使用方便查询。
2、分享学习,发表博客分享好东西,大家相互学习,有什么错误的地方,也请各位大神指教!
本文章是以《编程之法:面试和算法心得》书籍作为基础,将书籍中的算法使用java语言进行整理,以及个人所列举的计算方法,本文章根据本书中的第一章第一节字符串的旋转进行整理,并且提出了本人平时使用的计算方法(本人方法卓略,大神勿喷),以供日后查阅,及分享!
以下为个人根据书籍整理的算法,以java语言编程,代码如下:
package bianchengzhifaExample;/** * 将字符串前m位移到字符串的第n位之后 * @author cyz * */public class Reverse {/** * 逐字位移 * @param s * @param n 字符串长度 * @param m 需反转字符串长度 * @return */public String LeftRotateString1(char[] s,int n ,int m){while (m-->0) {LeftShiftOne(s,n);}String str="";for (int i = 0; i < s.length; i++) {str+=s[i];}return str;}public void LeftShiftOne(char[] s,int n){char t=s[0];for (int i = 1; i < n; i++) {s[i-1]=s[i];}s[n-1]=t;}/** * 三步反转(使用时该方法时n一定要大于m) * @param s * @param n 被反转字符串位置 * @param m 需反转字符串长度 */public String LeftRotateString2(char[] s,int n,int m){m%=n;ReverseString(s, 0, m-1);ReverseString(s, m, n-1);ReverseString(s, 0, n-1);String str="";for (int i = 0; i < s.length; i++) {str+=s[i];}return str;}public void ReverseString(char[] s,int from ,int to){while (from<to) {char t=s[from];s[from++]=s[to];s[to--]=t;}}public String LeftRotateString3(){return new String();}public static void main(String[] args) {Reverse r=new Reverse();String str="abcdefghijklmnopq";System.err.println("-----------使用逐位反转----------------");System.err.println("str反转前:"+str);char[] s1=str.toCharArray();String str1=r.LeftRotateString2(s1, 2, 1);//String str1=r.LeftRotateString1(s1, str.length(), 4);System.err.println("str反转后:"+str1);System.err.println("-----------使用三步反转----------------");System.err.println("str反转前:"+str);char[] s2=str.toCharArray();String str2=r.LeftRotateString2(s2, 2, 1);////String str2=r.LeftRotateString2(s2, str.length(), 4);System.err.println("str反转后:"+str2);}}
0 0
- java两种方式实现“将字符串前m位移到字符串的第n位之后”
- 将字符串的前N个字符平移到字符串的后面 -string的特性实现
- 【Java】给定两个32位的整数N与M,以及表示比特位置的i与j。编写一个方法,将M插入N,使得M从N的第 j 位开始,到第 i 位结束。
- 组合(从长度为n的字符串中取m个字符)---java两种实现方法
- java 自己实现字符串从m到n的字符截取
- 实现将字符串右循环n位
- strncpy:复制源字符串的前n位,到另一个字符串中
- 截取字符串前n位
- 将一个长度为n的字符串向左循环移动m位
- 关于字符串位移位
- 将数组中指定的前N位移动到数组的最后面
- 将字符串n位翻转
- 将字符串str2的前n个字符复制到字符数组str1中
- 将一个字符串的前n个字符旋转到后面,采用左旋,或者右旋。
- 截取字符串前N位为0的
- 返回一个字符串的前n位字符
- android位移动画的两种实现方式
- 将整数n这个数字转换为对应的字符串,保存到s中(两种方法)
- 【总结】Hadoop剖析
- getWindow().setFlags()方法
- iframe自适应父容器宽高
- javascript 中 apply 方法的使用
- 在Eclipse中编写log4j的时候,无法输入中文的解决办法
- java两种方式实现“将字符串前m位移到字符串的第n位之后”
- IOS中输入框被软键盘遮挡的解决办法
- C语言学习之标准函数库第一讲
- Leetcode—三的幂
- 自定义圆形头像
- 【总结】消息服务中间件(ActvieMQ)
- 苹果开发那些事儿-D-U-N-S 号申请
- iOS怎么实现不进appstore的增量更新?(类似各种游戏,12306)
- 【总结】MySQL数据库