首页 > 其他分享 >每日一道leetcode:6. N 字形变换

每日一道leetcode:6. N 字形变换

时间:2023-06-15 11:04:56浏览次数:54  
标签:字形 变换 res while numRows ++ int vec leetcode


1. 题目(中等)

题目链接

每日一道leetcode:6. N 字形变换_职场和发展


每日一道leetcode:6. N 字形变换_leetcode_02

2. 分析与解答

思路:矩阵模拟。分为两步:

  • 向下遍历
  • 向右上遍历
class Solution {
public:
    string convert(string s, int numRows) {
        // 模拟
        int n = s.length();
        if (numRows == 1 || numRows >= n) {
            return s;
        }
        vector<vector<char>> vec(numRows, vector<char>(n));
        int i = 0, j = 0, k = 0;
        
        // 向下走
        while (k < n) {
            while (i < numRows-1 && k < n) {
                vec[i][j] = s[k];
                i ++;
                k ++;
            }

            while (i > 0 && k < n) {
                vec[i][j] = s[k];
                i --;
                j ++;
                k ++;
            }
        }

        string res = "";
        for (int x = 0; x < numRows; x++) {
            for (int y = 0; y < n; y++) {
                if (vec[x][y]) res += vec[x][y];
            }
        }
        return res;
    }
};


标签:字形,变换,res,while,numRows,++,int,vec,leetcode
From: https://blog.51cto.com/u_16161414/6485324

相关文章

  • leetcode:vim模式下esc代码区失焦问题
    问题刷力扣时用的vim模式编码,当按下esc退出插入模式的时候,发现编辑的焦点直接从代码区退出了,还想继续往下敲代码就只能再次点鼠标原因浏览器使用了插件vimium,所以导致这个问题的出现。参考这里解决把插件设置力扣网站禁用就行,如果不想麻烦的关闭vimium插件的话。直接添加如......
  • #yyds干货盘点# LeetCode程序员面试金典:分割回文串
    题目:给你一个字符串s,请你将s分割成一些子串,使每个子串都是回文串。返回s所有可能的分割方案。回文串是正着读和反着读都一样的字符串。 示例1:输入:s="aab"输出:[["a","a","b"],["aa","b"]]示例2:输入:s="a"输出:[["a"]]代码实现:classSolution{bo......
  • 【LeetCode双指针】合并两个有序数组,从后向前遍历
    合并两个有序数组https://leetcode.cn/problems/merge-sorted-array/给你两个按非递减顺序排列的整数数组nums1和nums2,另有两个整数m和n,分别表示nums1和nums2中的元素数目。请你合并nums2到nums1中,使合并后的数组同样按非递减顺序排列。注意:最终,合并后数......
  • 每日一道leetcode:4. 寻找两个正序数组的中位数
    1.题目(困难)题目链接给定两个大小分别为m和n的正序(从小到大)数组nums1和nums2。请你找出并返回这两个正序数组的中位数。算法的时间复杂度应该为O(log(m+n))。示例1:输入:nums1=[1,3],nums2=[2]输出:2.00000解释:合并数组=[1,2,3],中位数2示例2:输入:nums1=[1,2],nu......
  • 每日一道leetcode:5. 最长回文子串
    1.题目(中等)题目链接给你一个字符串s,找到s中最长的回文子串。如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。示例1:输入:s=“babad”输出:“bab”解释:“aba”同样是符合题意的答案。示例2:输入:s=“cbbd”输出:“bb”提示:1<=s.length<=1000s仅由数字和英文......
  • Leetcode
    1.两数之和题目链接:1.两数之和-力扣(LeetCode)给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target 的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意......
  • [LeetCode] 1348. Tweet Counts Per Frequency 推文计数
    Asocialmediacompanyistryingtomonitoractivityontheirsitebyanalyzingthenumberoftweetsthatoccurinselectperiodsoftime.Theseperiodscanbepartitionedintosmaller timechunks basedonacertainfrequency(every minute, hour,or day......
  • Leetcode 常见报错的原因分析
    问题1问题描述Line522:Char69:runtimeerror:applyingnon-zerooffset18446744073709551615tonullpointer(basic_string.h)报错原因stringres=0报错分析这里报错的原因是因为使用了int整型变量来初始化string。......
  • Log in Leetcode in Vscode With Cookies" #标题
    Installleetcodeplug-ininvscodeIt'seasybysearchinExtension.LoginwithcookiesIfyouwanttologinleetcodeinvscodeleetcodeplug-inbygithubaccount,theremaybebugsthatyoucan'ttestorsubmit.Butifyousigninwithcookies......
  • Vscdoe 通过cookie 登陆美区 LeetCode
    安装插件vscode安装leetcode插件。使用cookie登陆如果选择使用github登陆leetcode.com,似乎会有无法提交和测试的bug,而用cookie登陆就没有这个问题使用edge获取cookie使用Firefox获取的cookie有问题,无法正常登陆右键,选择检查选择网络打开leetcode的problem页面下滑找到......