2016-11-12 conversion 简单说就是将字符串打乱然后排序,说到这里,这个不是密码学了吗?做的时候都没有发现唉! 原题目链接 对了我依然还是贴上typescript的代码,其实我的思路错了,不应该使用这个方法的,应该有更简单的方法。但是也算是勉强解决了,就是逻辑更加困难了。 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061/** * Created by YangSir on 2016/11/5. */class Ctr{ Flag:number; flag:number; x:number; y:number; constructor(){ this.Flag = 0; this.flag = 1; this.x = 0; this.y = 0; } concon(){ this.flag = (++this.flag)%2; } con(n){ if((this.Flag!=0)&&this.Flag%(n-1)==0){ this.concon(); } this.Flag++; return this.fn(); } fn(){ switch(this.flag){ case 1: this.x++;break; case 0: this.y++;this.x--;break; } return { x: this.x, y: this.y }; }}var convert = function(str, n){ var ctr = new Ctr(); var Srr = str.split(""); var Arr = []; var Brr = []; for(var i = 0;i < n; i++){ Arr.push([]); } Arr[0][0] = Srr[0]; for(var j = 1,len = str.length; j < len; j++){ var ob = ctr.con(n); Arr[ob.x][ob.y] = Srr[j]; } for(var k = 0,LenA = Arr.length; k<LenA; k++){ for(var p = 0,LenB = Arr[k].length; p<LenB; p++){ if(Arr[k][p]){ Brr.push(Arr[k][p]); } } } var Str = Brr.join(""); console.log(Str); return Str;};//convert("PAYPALISHIRING",3);convert("AB",1); Nieuwer 对js的链表操作 Ouder container_with_most_water