如何查询企业有没有做网站/网站建设山东聚搜网络
最近看了《编程之法:面试和算法心得》这本书,被各种高深的算法给膜拜了(本人职场小白,开发经验有限,抱着一颗学习的心,向大神学习),在这里整理了书中的部分算法,主要有两个目的:
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);}
}