zoukankan      html  css  js  c++  java
  • 6.Zigzag Z 字形变换

    本人先讲自己比较笨的 方法

    package homework;
    public class Main {
    	public String convert(String s, int numRows) {
    		int length = s.length(), x = 0, y = 0;
    		String arr[][] = new String[numRows][20];
    		int i = 0;
    		if(numRows==1) {//这个部分是自己后面加上去的 因为numRow==1的话 else部分不适合 
    			return s;
    		}
    		else {	//方法的话 是采用 二维数组进行存放
    		while (i < length) {
    			arr[x][y] = String.valueOf(s.charAt(i));//先第一步处理竖
    			// System.out.print(s.charAt(i)+" ");//查看每一步处理的字符串
    			// System.out.println(arr[x][y]);
    			i++;
    			x++;
    			if (x == numRows - 1) {//竖处理完之后 跳入这个循环 处理斜的 处理完斜行后跳出来
    				while (x != 0 && i < length) {
    					arr[x][y] = String.valueOf(s.charAt(i));
    					// System.out.print(s.charAt(i)+" ");
    					// System.out.println(arr[x][y]);
    					x--;
    					y++;
    					i++;
    				}
    			}
    		}
    		}
    		String str = "";//这个没什么好说的就读数据
    		for (int i2 = 0; i2 < numRows; i2++) {
    			for (int x2 = 0; x2 < 20; x2++) {
    				if (arr[i2][x2] != null && arr[i2][x2] != "")
    					str = str + arr[i2][x2];
    			}
    		}
    		return str;
    	}
    	public static void main(String[] args) {//测试用例
    		 Main m = new Main();
    		String s = "AB";
    		int numRows = 1;
    		System.out.println(m.convert(s, numRows));
    	}
    }
    
    class Solution {
    	public String convert(String s, int n) {  //首尾两行都是一个等差数列 中间都是两个等差数列相差在一起
    		if (n == 1)
    			return s;
    		StringBuffer sb = new StringBuffer("");
    		for (int i = 0; i < n; i++) {
    			if (i == 0 || i == n - 1) {
    				for (int j = i; j < s.length(); j += 2 * (n - 1)) {
    					sb.append(s.charAt(j));
    				}
    			} else {
    				for (int j = i, k = 2 * (n - 1) - i; j < s.length()
    						|| k < s.length(); j += 2 * (n - 1), k += 2 * (n - 1)) {
    					if (j < s.length())
    						sb.append(s.charAt(j));
    					if (k < s.length())
    						sb.append(s.charAt(k));
    				}
    			}
    		}
    		return sb.toString();
    	}
    }
    
  • 相关阅读:
    facade 对于有很多接口的提供一个简单的接口
    UML 常用符号 转
    <html> 按钮换行
    javascript: change the content of table
    [转载]当今计算机软件开发和应用领域最重要十种关键技术
    括号匹配算法
    求出给定两日期段 之间的交集算法
    表中的数据导出为insert语句的简单方法
    投色子下注的小程序
    未来社会发展趋势__P2p时代
  • 原文地址:https://www.cnblogs.com/cznczai/p/11149647.html
Copyright © 2011-2022 走看看