LeetCode(4)
来源:互联网 发布:淘宝一元抢购在哪里 编辑:程序博客网 时间:2024/06/05 21:07
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 NA P L S I I GY I RAnd 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"
.什么是zigzag:http://blog.csdn.net/ljiabin/article/details/40477429
”第一次看到这个题目的人,可能不知道ZigZag是什么意思,简单解释一下,就是把字符串原顺序012345……按下图所示排列:
比较直观的解法是,用一个字符串数组 string[rows] 来存储每一行,最后一拼接就是最终结果。“
我是真的没明白这个是什么 .中间红色那一部分 写得很巧妙。
Create nRows StringBuffers, and keep collecting characters from original string to corresponding StringBuffer. Just take care of your index to keep them in bound.
public String convert(String s, int nRows) { char[] c = s.toCharArray(); int len = c.length; StringBuffer[] sb = new StringBuffer[nRows]; for (int i = 0; i < sb.length; i++) sb[i] = new StringBuffer(); int i = 0; while (i < len) {
for (int idx = 0; idx < nRows && i < len; idx++) // vertically down sb[idx].append(c[i++]); for (int idx = nRows-2; idx >= 1 && i < len; idx--) // obliquely up sb[idx].append(c[i++]);
} for (int idx = 1; idx < sb.length; idx++) sb[0].append(sb[idx]); return sb[0].toString();}
阅读全文
0 0
- LeetCode-4
- LeetCode--4
- LeetCode(4)
- LeetCode-4*
- LeetCode(4)
- leetcode 4
- LeetCode #4
- LeetCode(4)
- LeetCode: 4 Sum
- LeetCode: 4Sum
- LeetCode 4Sum
- Leetcode: 4SUM
- 【leetcode】 4 sum
- LeetCode 4Sum
- leetcode 44: 4Sum
- [Leetcode] 4 Sum [Unsolved]
- 【leetcode】4Sum
- [LeetCode]4Sum
- sqlite 怎么开启wal机制
- java初学者的历程
- java并发测试用例模板
- tp5中获取参数。tp5中未定义变量
- python环境配置-Linux系统
- LeetCode(4)
- 【0036】SQL数据操纵语言INSERT,UPDATE,DELETE
- Swift_for while循环,if语句
- Hibernate笔记(二)
- 电报
- 通过system调用颜色函数
- Maven学习笔记(一)
- HTML5实现图片淡入淡出效果
- java使用jbarcode生成条形码