ZigZag Conversion
来源:互联网 发布:狐狸那时已是猎人知乎 编辑:程序博客网 时间:2024/06/15 04:00
问题来源:https://leetcode.com/problems/zigzag-conversion/
import java.util.ArrayList;import java.util.Iterator;import java.util.List;/** * * <p> * ClassName ZigZagConversion * </p> * <p> * Description The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to * display this pattern in a fixed font for better legibility) * * P A H N * A P L S I I G * Y I R * And then read line by line: "PAHNAPLSIIGYIR" Write the code that will take a string and make this * conversion given a number of rows: * * string convert(string text, int nRows); convert("PAYPALISHIRING", 3) should return "PAHNAPLSIIGYIR". * </p> * * @author TKPad wangx89@126.com * <p> * Date 2015年3月26日 下午3:13:03 * </p> * @version V1.0.0 * */public class ZigZagConversion { // 每一行用一个链表来存储 public String convert(String s, int nRows) { if(1==nRows){ return s; } List<List<Character>> list = new ArrayList<List<Character>>(); char[] charArray = s.toCharArray(); for (int i = 0; i < nRows; i++) { List<Character> list_i = new ArrayList<Character>(); list.add(list_i); } boolean flag = true;// true:表示count递增,false:表示count递减 int count = 0;// 小标,count可以决定从List集合中取出第几个List集合 for (int i = 0; i < charArray.length; i++) { list.get(count).add(charArray[i]); if (flag) { count++; } else { count--; } if (count == 0 || count == nRows - 1) { flag = !flag;// 将标识翻转 } } String res = ""; for (int i = 0; i < nRows; i++) { Iterator<Character> iterator = list.get(i).iterator(); while (iterator.hasNext()) { res += iterator.next(); } } return res; } // Wrong Answer // Input : ABC,2 // Output : ABC // Expected : ACB // Wrong Answer // Input: "ABCDE", 4 // Output: "ABECD" // Expected: "ABCED" public static void main(String[] args) { String convert = new ZigZagConversion().convert("AB", 1); System.out.println(convert); }}
0 0
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- Zigzag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- 4.1 颜色感知
- jQuery判断一个元素是否是另一个元素的子元素(或其自身)
- 服务器被攻击实录
- Java中数组的一些总结
- 内存泄露排查
- ZigZag Conversion
- ACE_Reactor详解
- ADT国内更新
- Android Tab导航菜单栏--FragmentTabHost+Fragment实现(基础篇)
- IOS开发中有用的第三方库
- 【C#】实战篇-C#版登录
- 如何获取耳机是否已插入和耳机实时插拔情况?
- C语言getopt()函数的使用
- 添加 Search Bar in Table View-iOS7