leetcode[ZigZag Conversion]//待整理多种解法


解法一:

class Solution {
    public String convert(String s, int numRows) {
    	if(numRows < 2){//一行的直接返回原字符串即可
    		return s;
    	}
    	
        StringBuilder[] row = new StringBuilder[numRows];//这个只是创建了numRows个字符串的引用
        for(int i = 0; i < row.length; i++){
        	row[i] = new StringBuilder();//每一个引用还要创建具体的字符串对象,java数组需要注意这个,区分对象和基本类型
        }
        boolean upOrDown = true;//upOrDown为true时代表在向下挪动row,反之代表在向上挪动row
        int nowMove = 0;//代表现在移动到了第几行
        for(int i = 0; i < s.length(); i++){
        	char get = s.charAt(i);
        	
        	if(upOrDown){//代表在向下移动
        		row[nowMove++].append(get);//向第nowMove行的字符串增加
        	} else{
        		row[nowMove--].append(get);//代表在向上移动
        	}
        	
        	if(nowMove >= numRows || nowMove <= -1){//因为处理完了这一行再自增、自减的,所以需要多超过1的限度
        		upOrDown = upOrDown ^ true;//取反
        		//取反了还要修改nowMove的值,变化量是2,因为之前已经取了第一个和最后一个
        		//只能针对行数大于等于2的,否则会越界
        		nowMove = nowMove >= numRows ? nowMove-2 : nowMove+2;
        	}
        	
        	//System.out.println(nowMove);
        }
        
        StringBuilder res = new StringBuilder();
        for(int i = 0; i < numRows; i++){//按横排整理结果字符串
        	res.append(row[i]);
        }
        
        return res.toString();
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值