zoukankan      html  css  js  c++  java
  • Leetcode: 6. ZigZag Conversion

    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)

    Example

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

    思路

    • 这个题好像也没有什么简便方法,找规律吧

    代码

    • 时间复杂度:O(n)
    class Solution {
    public:
       string convert(string s, int numRows) {
    		int len = s.size();
    		if (numRows <= 1 || len <= 1)  return s;
    
    		string res(s);
    
    		int countX = 2 * numRows - 2;
    		int countY = 0;
    		int index = 0;
    
    		int tmp = numRows;
    		int k = 0;
    		while (tmp > 0){
    
    			if (countY == 0){
    				int i = index;
    				countX = numRows * 2 - 2;
    				while (i < len){
    					res[k++] = s[i];
    					i = i + countX;
    				}
    				index++;
    				countX -= 2;
    				countY += 2;
    			}
    			else if (countX != 0 && countY != 0){
    				int i = index;
    				while (i < len){
    					res[k++] = s[i];
    					i = i + countX;
    					if (i < len){
    						res[k++] = s[i];
    						i = i + countY;
    					}
    				}
    				index++;
    				countX -= 2;
    				countY += 2;
    			}
    			else if (countX == 0){
    				int i = index;
    				countX = numRows * 2 - 2;
    				while (i < len){
    					res[k++] = s[i];
    					i = i + countX;
    				}
    				index++;
    				countX -= 2;
    				countY += 2;
    			}
    			tmp--;
    		}
    
    		return res;
    	}
    };
    
  • 相关阅读:
    软件包的作用
    Sqlserver2008 表分区教程
    C#通用类型转换 Convert.ChangeType
    缓存 HttpContext.Current.Cache和HttpRuntime.Cache的区别
    用户信息 Froms验证票证
    .NET4.0 __doPostBack未定义
    TFS2012 安装 配置笔记
    MVC学习笔记一
    新博客..第一天..
    ORACLE多表查询优化
  • 原文地址:https://www.cnblogs.com/lengender-12/p/6809892.html
Copyright © 2011-2022 走看看