zoukankan      html  css  js  c++  java
  • LeetCode OJ--ZigZag Conversion

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

    将字符串Z形字排列后,再重新一行一行输出。

    可以找到每一行字符位置的规律,然后填充进去。

    敲代码之前,先演算好了,每个变量是怎样表达的,规律到底是什么样的。

    #include <iostream>
    #include <vector>
    #include <string>
    using namespace std;
    
    class Solution {
    public:
        string convert(string s, int nRows) {
            if(s.size() == 1 || nRows == 1 || nRows == 0)
                return s;
    
            string str_ans;
            vector<string> ans;
            ans.resize(nRows);
            int Num = nRows + nRows - 2;
    
            int times = 0;
            int paddle = 0;
            while(times >=0 )
            {
                for(paddle = 0; paddle<nRows;paddle++)
                {
                    int pivot = times*Num + paddle;
                    if(pivot >= s.size())
                    {
                        times = -2;
                        break;
                    }
                    ans[paddle] += s[pivot];
                    if( !paddle ==0 && paddle != (nRows -1))
                    {
                        int temp = times*Num + nRows -1 + nRows -1 - paddle;
                        if( temp < s.size())
                            ans[paddle] += s[temp];
                    }
                }
         
                times++;
            }
            for(int i = 0; i< nRows; i++)
                str_ans += ans[i];
            return str_ans;
        }
    };
    
    int main()
    {
        class Solution myS;
        cout<<myS.convert("ABC",2)<<endl;
        return 0;
    }
  • 相关阅读:
    gtest(C++单元测试框架)
    tinyXML入门
    笔记 解决vue3动态绑定本地图片失效问题
    面试技巧
    vuex 状态管理
    插槽的使用
    Vue-router 路由
    Vue组件
    (转)JS 常用 DOM
    9-26
  • 原文地址:https://www.cnblogs.com/qingcheng/p/3787622.html
Copyright © 2011-2022 走看看