leetcode ------ZigZag Conversion (6)
2016-06-06 13:44
267 查看
题目:
![](https://img-blog.csdn.net/20160604100646837)
解题思路:这个题目是简单题,但是其中也隐含了一些有意思的细节问题,题目本身的意思是按照给定的行数把字符串分拆成折线的形式,横向输出。 看着这个题目,很自然的想到了用二维数组来解决这个问题,添加的顺序基本上有两类。
第一类是向下的按个添加
第二类的向右上添加
所以,在程序中需要有一个标志位来标示下一个字母的添加方向,如果是向下的话,当前左边的X坐标不变,y+1就好。 如果是向右上添加的话,x-1,y+1即可。 思路本身很好实现。
可以通过,但是,这里却有个小的问题,就是数组定义的问题 第一个维度不用说,明显是指给定的行数,我们需要找到的是列数与行数和字符串长度之间的关系。
解题思路:这个题目是简单题,但是其中也隐含了一些有意思的细节问题,题目本身的意思是按照给定的行数把字符串分拆成折线的形式,横向输出。 看着这个题目,很自然的想到了用二维数组来解决这个问题,添加的顺序基本上有两类。
第一类是向下的按个添加
第二类的向右上添加
所以,在程序中需要有一个标志位来标示下一个字母的添加方向,如果是向下的话,当前左边的X坐标不变,y+1就好。 如果是向右上添加的话,x-1,y+1即可。 思路本身很好实现。
public String convert(String s, int numRows) { if(s==null||s.equals("")) return s; boolean flag = true; int m =0,n=0; int wight=s.length(); if(wight<1) wight=1; String arr[][] = new String[numRows][wight]; for(int x=0;x<numRows;x++){ for(int y=0;y<wight;y++){ arr[x][y]="*"; } } int temp =s.length(); for(int i=0;i<temp;i++){ if(flag){ arr[m] =s.substring(0,1); s=s.substring(1); if(m==numRows-1){ flag=false; m--; } m++; }else{ m--; n++; arr[m] =s.substring(0,1); s=s.substring(1); if(m==0) { m++; flag=true; } } } String result=""; for(int x=0;x<numRows;x++){ for(int y=0;y<wight;y++){ if(arr[x][y]!=null&&!"*".equals(arr[x][y])) result+=arr[x][y]; } } for(int x=0;x<numRows;x++){ for(int y=0;y<wight;y++){ System.err.print(arr[x][y]+" "); } System.err.println(""); } return result; }
可以通过,但是,这里却有个小的问题,就是数组定义的问题 第一个维度不用说,明显是指给定的行数,我们需要找到的是列数与行数和字符串长度之间的关系。
相关文章推荐
- leetcode 179 Largest Number
- leetcode 24 Swap Nodes in Pairs
- leetcode 2 Add Two Numbers 方法1
- leetcode 2 Add Two Numbers 方法2
- leetcode----Longest Substring Without Repeating Characters
- [LeetCode]47 Permutations II
- [LeetCode]65 Valid Number
- [LeetCode]123 Best Time to Buy and Sell Stock III
- [LeetCode] String Reorder Distance Apart
- [LeetCode] Sliding Window Maximum
- [LeetCode] Find the k-th Smallest Element in the Union of Two Sorted Arrays
- [LeetCode] Determine If Two Rectangles Overlap
- [LeetCode] A Distance Maximizing Problem
- leetcode_linearList
- leetcode_linearList02
- 021-Merge Two Sorted Lists(合并两个排好序的单链表);leetcode
- LeetCode[Day 1] Two Sum 题解
- LeetCode[Day 2] Median of Two Sorted Arrays 题解
- LeetCode[Day 3] Longest Substring Without... 题解
- LeetCode [Day 4] Add Two Numbers 题解