首页 > 其他分享 >力扣-6-Z 字形变换

力扣-6-Z 字形变换

时间:2024-08-03 10:51:18浏览次数:12  
标签:numRows ch 字形 变换 len 力扣 int cycle string

其实叫“N 字形变换”更形象

第一版代码,在二维数组中模拟打印过程,但是时间和空间效率都很差,都是 n2

string convert(string s, int numRows) {
	int len = s.size();
	// 如果只有一行或者只有一列则直接输出
	if (numRows == 1 || numRows >= len) return s;
	// 计算每个周期占用的字符数量
	int cycle = numRows + numRows - 2;
	int column = (1 + numRows - 2) * len / cycle + len % cycle;

	vector<string> maps(numRows, string(column, 0));
	for (int x = 0, y = 0, k = 0; k < len; k++) {
		maps[x][y] = s[k];
		if (k % cycle + 1 < numRows) x++;
		else {
			x--;
			y++;
		}
	}
	string res;
	for (string str : maps) for (char ch : str) if (ch)res += ch;
	return res;
}

标签:numRows,ch,字形,变换,len,力扣,int,cycle,string
From: https://www.cnblogs.com/yaocy/p/18340164

相关文章

  • 力扣--59.螺旋矩阵II
      模拟顺时针画矩阵的过程:填充上行从左到右填充右列从上到下填充下行从右到左填充左列从下到上由外向内一圈一圈这么画下去/***生成一个包含从1到n*n的数字的矩阵*@param{number}n-矩阵的大小,为正整数*@return{number[][]}-返回一个nxn的二维数......
  • 力扣2173题
    力扣之2173.最多连胜的次数说明跳转准备工作dropdatabaseifexistsdb_1;createdatabasedb_1;usedb_1;CreatetableIfNotExistsMatches(player_idint,match_daydate,resultENUM('Win','Draw','Lose'));TruncatetableMatches;inser......
  • 使用变动和观察(Perturb and Observe)最大功率点跟踪(MPPT)算法控制升压变换器的MOSFET/IG
     ......
  • opencv 霍夫曼变换
    霍夫变换不仅可以找出图片中的直线,也可以找出圆,椭圆,三角形等等,只要你能定义出直线方程,圆形的方程等等.不得不说,现在网上的各种博客质量真的不行,网上一堆文章,乱TM瞎写,误人子弟.本身自己就没有理解的很清楚,又不去读算法实现的源码,写的云山雾罩的,越看越懵逼.霍夫......
  • 视觉变换器模型未按应有的方式进行训练
    这是我使用Pytorch构建的视觉转换器的代码。该模型的交叉熵为2.31,准确度约为10%。这在所有时代都是一样的。因此,该模型无法训练。请让我知道我做错了什么,如果可能的话,请发送修改后的代码。预先感谢!PS:该模型是在MNIST上训练的#-*-coding:utf-8-*-"""Createdon......
  • Farrow滤波器-数字信号的任意速率变换
    前言:本文是Farrow滤波器相关三篇论文的学习笔记,介绍用于数字信号任意速率转化的Farrow滤波器,主要包括原理与架构,文章分为三个部分(1)重采样过程的数学建模;(2)Farrow算法推导;(3)Farrow滤波器实现架构。Farrow架构的两种理解:(1)对数模混合重采样过程用全数字滤波器形式近似,并基于多......
  • 力扣题解2-两数相加
    问题的描述如下:分析过程:为了解决这个问题,我们需要逐位相加两个链表对应位置的值,并处理进位问题。具体步骤如下:初始化一个新的链表,用于存储结果。使用两个指针遍历两个输入链表,逐位相加,同时考虑进位。如果一个链表比另一个短,则将其视为0进行计算。处理最后可能存在的进位......
  • 最细哈希表相关的力扣题和讲解和Java、C++常用的数据结构(哈希法)来源于代码随想录,十分
    20240725一、什么时候适用什么样的结构。1.java中1.1HashSet:1.2TreeSet:1.3LinkedHashSet:1.4HashMap:1.5TreeMap:1.6LinkedHashMap:1.7总结2.c++中2.1std::unordered_set:2.2std::set:2.3std::multiset:2.4std::unordered_map:2.5std::map:2.6std::multimap:3代码......
  • Hough变换
    python实现广义Hough变换算法、Hough变换算法1.广义Hough变换算法详解算法步骤Python实现详细解释优缺点2.Hough变换算法详解算法步骤Python实现详细解释优缺点 实现广义Hough变换算法(Generalized Hough Transform)可以用于检测任意形状的对......
  • 力扣高频SQL 50题(基础版)第二十题
    文章目录力扣高频SQL50题(基础版)第二十题2356.每位教师所教授的科目种类的数量题目说明思路分析实现过程准备数据实现方式结果截图力扣高频SQL50题(基础版)第二十题2356.每位教师所教授的科目种类的数量题目说明表:Teacher±------------±-----+|ColumnName......