zoukankan      html  css  js  c++  java
  • LeetCode.6

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

      题意:就是给出层数,然后按锯齿形正弦波保存字符串。。。类似给数据加密。

      这个题我个人觉得挺有意思的,但没能解决。。。看了别人的题解,有一个让我很喜欢的,算法真的是太棒了。。

      代码十分简洁易懂,第9行的细节处理真的是太精彩了:

    class Solution {
    public:
        string convert(string s, int numRows) {
            string res="";
            if(numRows==1) return s;
            for(int i=0; i < numRows; i++){
                for(int j=0, k=i; k < s.size(); j++){
                    res += s[k];
                    k += ((i==0 || (j%2==0)) && (i!= numRows-1) ) ? 2*(numRows-i-1) : 2*i;
                }
            }
            return res;
        }
    };
    

      题目来源:ZigZag Conversion

      代码来源:Solution

  • 相关阅读:
    nginx
    spring 学习
    mysql 免安装 操作
    院感干预 报错
    iis 无法绑定 net.tcp
    wangEditor 自定义 菜单
    院感干预 发布
    第17篇 shell编程基础(2)
    第16篇 Shell脚本基础(一)
    第15篇 PSR-04 规范
  • 原文地址:https://www.cnblogs.com/darkchii/p/8137419.html
Copyright © 2011-2022 走看看