zoukankan      html  css  js  c++  java
  • LeetCode(6) 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)
    题目示例
    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”.

    分析

    题目描述

    思路参考博客,在此表示对博主的感谢。
    向下循环:nRows

    斜角线循环:nRows-2(减去首尾两个端点)

    重复

    AC代码

    class Solution {
    public:
        string convert(string s, int numRows) {
    
            if (s.empty() || numRows == 1)
                return s;
            //声明numRows个字符串,对该之字型序列处理
            string *res = new string[numRows];
            int i = 0, j, gap = numRows - 2;
            while (i < s.size()){
                for (j = 0; i < s.size() && j < numRows; ++j) res[j] += s[i++];
                for (j = gap; i < s.size() && j > 0; --j) res[j] += s[i++];
            }
            string str = "";
            for (i = 0; i < numRows; ++i)
                str += res[i];
            return str;
        }
    
    };

    GitHub测试程序源码

  • 相关阅读:
    Java中的生产消费者问题
    线程ThreadDemo04
    Web开发的分层结构与MVC模式
    正则表达式
    jQuery总结
    深入学习Ajax
    JSTL标签库
    EL表达式
    JSP基础
    Servlet 总结
  • 原文地址:https://www.cnblogs.com/shine-yr/p/5214900.html
Copyright © 2011-2022 走看看