`
huntfor
  • 浏览: 201186 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

[leetcode]ZigZagConversion

 
阅读更多

新博文地址:[leetcode]ZigZag Conversion

http://oj.leetcode.com/problems/zigzag-conversion/

写道
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".

 

看到讨论组里面有人用递归实现,代码简单的令人发指,但是当我看到这道题的第一反应是建模。。 太渣了。。。

public class Solution {
    public String convert(String s, int nRows) {
		if(nRows == 1){
			return s;
		}
		int strLength = s.length();
		StringBuilder sb = new StringBuilder();
		for (int i = 0; i < nRows; i++) {
			if (i == 0 || i == nRows - 1) {
				for (int m = 0; i + m * 2 * (nRows - 1) < strLength; m++) {
					sb.append(s.charAt(i + m * 2 * (nRows - 1)));
				}
			} else {
				for (int m = 0; 2 * m * (nRows - 1) + i < strLength || 2 * (m + 1) * (nRows - 1) - i < strLength; m++) {
					sb.append(s.charAt(i + m * 2 * (nRows - 1)));
					if (2 * (m + 1) * (nRows - 1) - i < strLength) {
						sb.append(s.charAt(2 * (m + 1) * (nRows - 1) -  i));
					}
				}
			}
		}
		return sb.toString();
	}
}

 

分享到:
评论

相关推荐

    LeetCode6 ZigZag Conversion

    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) Java AC版本

    c语言-leetcode 0006-zigzag-conversion.zip

    c c语言_leetcode 0006_zigzag_conversion.zip

    java-leetcode题解之006-ZigZag-Conversion

    java入门 java_leetcode题解之006_ZigZag_Conversion

    C语言-leetcode题解之06-zigzag-conversion.c

    c语言入门 C语言_leetcode题解之06-zigzag-conversion.c

    js-leetcode题解之6-zigzag-conversion.js

    js js_leetcode题解之6-zigzag-conversion.js

    Leetcode回文串拼接-leetcode_note:用于记录leetcode题目的解析

    Conversion 7.Reverse Integer 8.String To Integer 9.Palindrome Number 10.String To Integer 11.Container With Most Water 12.Integer To Roman 13.Roman To Integer 289 347 380 442 457 Circular Array Loop ...

    LeetCode 刷题汇总1

    * ZigZag转换(ZigZag Conversion):将字符串转换为ZigZag格式。 * 回文数(Palindrome Number):判断数字是否为回文数。 3. 数学运算: * 两个排序数组的中位数(Median of Two Sorted Arrays):计算两个排序...

    LeetCode最全代码

    # [LeetCode](https://leetcode.com/problemset/algorithms/) ![Language](https://img.shields.io/badge/language-Python%20%2F%20C++%2011-orange.svg) [![License]...

    leetcode2sumc-leetcode_journey:挑战完整的leetcode,每周至少一题!

    Conversion,则可以生成一个空的测试文件以及一个模板代码文件ZigZag_Conversion.cpp,cpp的内容如下: #include "comm_header.h" int main() { int test_cases = input(); for (int i = 1; i &lt;= test_cases; +...

    leetcode2-zigzag_conversion:代码挑战:ZigZag转换

    leetcode 2 代码挑战 之字形转换 字符串"PAYPALISHIRING"在给定的行数上以锯齿形图案书写,如下所示:(您可能希望以固定字体显示此图案以获得更好的可读性) P A H N A P L S I I G Y I R 然后逐行阅读: ...

    leetcode题目分类

    - ZigZag Conversion(Z字形变换):将字符串“PAYPALISHIRING”按照Z字形排列。 - String to Integer (atoi)(字符串转换整数):将字符串转换成整数。 题目难度的标注是按照po主的主观判断来完成的,可能会有一些...

    leetcode316-leetcode_script:leetcode题解更新脚本

    Conversion Easy -&gt; Medium 8 String to Integer (atoi) Easy -&gt; Medium 19 Remove Nth Node From End of List Easy -&gt; Medium 33 Search in Rotated Sorted Array Hard -&gt; Medium 35 Search Insert Position Medium...

    LeetCode前400题Java精美版

    6. **ZigZag Conversion** (Medium): 将直行文本转换为锯齿形排列。可以使用两指针分别控制行和列的变化来实现。 7. **Reverse Integer** (Easy): 反转一个整数。需要注意整数溢出的问题,可以使用数学方法避免。 ...

    leetcode分类-LeetCodeSrc:力扣

    O(n)时间复杂度就可以解决###LeetCode4AddTwoNumbers简单题,注意空指针的情况和进位###LeetCode5LongestPalindromicSubstringO(N^2)的时间复杂度,不知道有没有更快的###LeetCode6ZigZagConversion边界条件一定要想...

    leetcode知乎-leetcode:leetcode解决方案

    leetcode 知乎 此项目介绍 此项目旨在是为leetcode里面的习题提供解析(数据结构相关知识),锻炼了自己,同时也给别人带来了方便。 网站习题链接: ** 作者知乎链接**: ...Conversion Reverse Integer Strin

    _leetcode-python.pdf

    - ZigZag Conversion: 将字符串从左到右依次在Z字形排列填充到指定的行数。需要找出转换后的字符串。 - String to Integer (atoi): 将字符串转换为整数,需要处理各种边界情况,例如溢出、非法输入等。 - Reverse ...

    LeetCode答案大全

    6. ZigZag Conversion:将字符串按Z字形排列,输出按行读取的字符串。这个问题可以通过模拟Z字形的方式来解决,也可以通过数学的方式确定每个字符应该处于哪一个行。 7. Reverse Integer:这题要求将一个整数反转,...

    leetcode答案-leetcode:leetcode问题解决方案

    leetcode ...Conversion Medium com.bcat.algorithms.medium.ZigZagConversionSol 7 Reverse Integer Easy com.bcat.algorithms.easy.ReverseIntegerSol 8 String to Integer (atoi) Medium com.bc

    leetcode2sumc-leetcode:JavaScript版本leetcode中文版代码

    Conversion 中等 7 Reverse Integer 简单 8 String to Integer (atoi) 中等 9 Palindrome Number 简单 11 Container With Most Water 中等 12 Integer to Roman 中等 13 Roman to Integer 简单 14 Longest Common ...

    leetcode分类-Leetcode:cpp中的Leetcode解决方案(已解决424个)

    leetcode 分类 Leetcode 总结 (updating) # Title Solution 1 Two ...用unordered_map,降至O(n) ...一个变量存储进位,当l1,l2,进位非均为空时,继续...Conversion 7 Reverse Integer 8 String to Integer (atoi) 9 Palind

Global site tag (gtag.js) - Google Analytics