2075. 解码斜向换位密码

2075. 解码斜向换位密码

字符串 originalText 使用 斜向换位密码 ,经由 行数固定 为 rows 的矩阵辅助,加密得到一个字符串 encodedText 。

originalText 先按从左上到右下的方式放置到矩阵中。

图片.png

先填充蓝色单元格,接着是红色单元格,然后是黄色单元格,以此类推,直到到达 originalText 末尾。箭头指示顺序即为单元格填充顺序。所有空单元格用 ’ ’ 进行填充。矩阵的列数需满足:用 originalText 填充之后,最右侧列 不为空 。

图片.png

接着按行将字符附加到矩阵中,构造 encodedText 。

先把蓝色单元格中的字符附加到 encodedText 中,接着是红色单元格,最后是黄色单元格。箭头指示单元格访问顺序。

例如,如果 originalText = “cipher” 且 rows = 3 ,那么我们可以按下述方法将其编码:

图片.png

蓝色箭头标识 originalText 是如何放入矩阵中的,红色箭头标识形成 encodedText 的顺序。在上述例子中,encodedText = “ch ie pr” 。

给你编码后的字符串 encodedText 和矩阵的行数 rows ,返回源字符串 originalText 。

注意:originalText 不 含任何尾随空格 ’ ’ 。生成的测试用例满足 仅存在一个 可能的 originalText 。

  • 示例 1:

输入:encodedText = “ch ie pr”, rows = 3

输出:“cipher”

解释:此示例与问题描述中的例子相同。

  • 示例 2:

图片.png

输入:encodedText = “iveo eed l te olc”, rows = 4

输出:“i love leetcode”

解释:上图标识用于编码 originalText 的矩阵。
蓝色箭头展示如何从 encodedText 找到 originalText 。

  • 示例 3:

图片.png

输入:encodedText = “coding”, rows = 1

输出:“coding”

解释:由于只有 1 行,所以 originalText 和 encodedText 是相同的。

  • 示例 4:

图片.png

输入:encodedText = " b ac", rows = 2

输出:" abc"

解释:originalText 不能含尾随空格,但它可能会有一个或者多个前置空格。

提示:

  • 0 <= encodedText.length <= 10610^6106
  • encodedText 仅由小写英文字母和 ’ ’ 组成
  • encodedText 是对某个 不含 尾随空格的 originalText 的一个有效编码
  • 1 <= rows <= 1000
  • 生成的测试用例满足 仅存在一个 可能的 originalText

解题思路

  1. 模拟矩阵的遍历方法,首先从矩阵的最上角开始遍历,向右下方不断遍历,直到超出界限,一旦超出界限,就将回到起始点,并且以起始点右边的节点为起始点,重复遍历
  2. 因为originalText 不 含任何尾随空格,因此我们需要对字符串末尾进行截断,消除后缀的空格

代码

class Solution {
public:string decodeCiphertext(string encodedText, int rows) {if(rows==1) return encodedText;int col=encodedText.size()/rows;string  res("");int x=0,y=0;while (x<rows&&y<col){int cx=x,cy=y;for (int i = 0; cx<rows&&cy<col ; ++i) {res+=encodedText[cy+cx*col];cx++;cy++;}y++;}int i = res.size()-1;for (; i >=0 ; --i) {if (res[i]!=' ')break;}return res.substr(0,i+1);}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/389762.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微服务实战(六):落地微服务架构到直销系统(事件存储)

在CQRS架构中&#xff0c;一个比较重要的内容就是当命令处理器从命令队列中接收到相关的命令数据后&#xff0c;通过调用领域对象逻辑&#xff0c;然后将当前事件的对象数据持久化到事件存储中。主要的用途是能够快速持久化对象此次的状态&#xff0c;另外也可以通过未来最终一…

时间序列数据的多元回归_清理和理解多元时间序列数据

时间序列数据的多元回归No matter what kind of data science project one is assigned to, making sense of the dataset and cleaning it always critical for success. The first step is to understand the data using exploratory data analysis (EDA)as it helps us crea…

vue-cli搭建项目的目录结构及说明

vue-cli基于webpack搭建项目的目录结构 build文件夹 ├── build // 项目构建的(webpack)相关代码 │ ├── build.js // 生产环境构建代码&#xff08;在npm run build的时候会用到这个文件夹&#xff09;│ ├── check-versions.js // 检查node&am…

391. 完美矩形

391. 完美矩形 给你一个数组 rectangles &#xff0c;其中 rectangles[i] [xi, yi, ai, bi] 表示一个坐标轴平行的矩形。这个矩形的左下顶点是 (xi, yi) &#xff0c;右上顶点是 (ai, bi) 。 如果所有矩形一起精确覆盖了某个矩形区域&#xff0c;则返回 true &#xff1b;否…

bigquery 教程_bigquery挑战实验室教程从数据中获取见解

bigquery 教程This medium article focusses on the detailed walkthrough of the steps I took to solve the challenge lab of the Insights from Data with BigQuery Skill Badge on the Google Cloud Platform (Qwiklabs). I got access to this lab in the Google Cloud R…

学习linux系统到底有没捷径?

2019独角兽企业重金招聘Python工程师标准>>> 说起linux操作系&#xff0c;可能对于很多不了解的人来说&#xff0c;第一个想到的就是类似于黑客帝国中的黑框框以及一串串不知所云的代码&#xff0c;总之这些感觉都可以总结成为一个字&#xff0c;那就是——酷&#…

机器学习之路:python k近邻回归 预测波士顿房价

python3 学习机器学习api 使用两种k近邻回归模型 分别是 平均k近邻回归 和 距离加权k近邻回归 进行预测 git: https://github.com/linyi0604/MachineLearning 代码&#xff1a; 1 from sklearn.datasets import load_boston2 from sklearn.cross_validation import train_test_…

大话数据结构 (程杰 著)

1转载于:https://www.cnblogs.com/revoid/p/9605734.html

wxpython实现界面跳转

wxPython实现Frame之间的跳转/更新的一种方法 wxPython是Python中重要的GUI框架&#xff0c;下面通过自己的方法实现模拟类似PC版微信登录&#xff0c;并跳转到主界面&#xff08;朋友圈&#xff09;的流程。 &#xff08;一&#xff09;项目目录 【说明】 icon : 保存项目使用…

java职业技能了解精通_如何通过精通数字分析来提升职业生涯的发展,第8部分...

java职业技能了解精通Continuing from the seventh article in this series, we are going to explore ways to present data. Over the past few years, Marketing and SEO field has become more data-driven than in the past thanks to tools like Google Webmaster Tools …

2028. 找出缺失的观测数据

2028. 找出缺失的观测数据 现有一份 n m 次投掷单个 六面 骰子的观测数据&#xff0c;骰子的每个面从 1 到 6 编号。观测数据中缺失了 n 份&#xff0c;你手上只拿到剩余 m 次投掷的数据。幸好你有之前计算过的这 n m 次投掷数据的 平均值 。 给你一个长度为 m 的整数数组 …

51nod 1250 排列与交换——dp

题目&#xff1a;http://www.51nod.com/onlineJudge/questionCode.html#!problemId1250 仔细思考dp。 第一问&#xff0c;考虑已知 i-1 个数有多少种方案。再放入一个数&#xff0c;它是最大的且在最后面&#xff0c;所以它的位置不同的话&#xff0c;就是不同的方案。它在特定…

BZOJ.1024.[SCOI2009]生日快乐(记忆化搜索)

题目链接 搜索&#xff0c;枚举切的n-1刀。 对于长n宽m要切x刀&#xff0c;可以划分为若干个 长n宽m要切x刀 的子问题&#xff0c;对所有子问题的答案取max 对所有子问题的方案取min 就是当前状态答案。 这显然是会有很多重复状态的&#xff0c;用map记忆化(长宽都是double)。 …

kfc流程管理炸薯条几秒_炸薯条成为数据科学的最后前沿

kfc流程管理炸薯条几秒In February, our Data Science team had an argument about which restaurant we went to made the best French Fry.2月&#xff0c;我们的数据科学团队对我们去哪家餐厅做得最好的炸薯条产生了争议。 We decided to make it a competition throughout…

XSS理解与防御

一、说明 我说我不理解为什么别人做得出来我做不出来&#xff0c;比如这里要说的XSS我觉得很多人就不了解其定义和原理的&#xff0c;在不了解定义和原理的背景下他们可以拿站&#xff0c;这让人怎么理解呢。那时我最怕两个问题&#xff0c;第一个是题目做得怎么样第二个是你能…

Java大数

转自&#xff1a;https://www.cnblogs.com/zufezzt/p/4794271.html import java.util.*; import java.math.*; public class Main{public static void main(String args[]){Scanner cin new Scanner(System.in);BigInteger a, b;//以文件EOF结束while (cin.hasNext()){a cin.…

2027. 转换字符串的最少操作次数

2027. 转换字符串的最少操作次数 给你一个字符串 s &#xff0c;由 n 个字符组成&#xff0c;每个字符不是 ‘X’ 就是 ‘O’ 。 一次 操作 定义为从 s 中选出 三个连续字符 并将选中的每个字符都转换为 ‘O’ 。注意&#xff0c;如果字符已经是 ‘O’ &#xff0c;只需要保持…

bigquery_到Google bigquery的sql查询模板,它将您的报告提升到另一个层次

bigqueryIn this post, we’re sharing report templates that you can build with SQL queries to Google BigQuery data.在本文中&#xff0c;我们将分享您可以使用SQL查询为Google BigQuery数据构建的报告模板。 First, you’ll find out about what you can calculate wit…

分类树/装袋法/随机森林算法的R语言实现

原文首发于简书于[2018.06.12] 本文是我自己动手用R语言写的实现分类树的代码&#xff0c;以及在此基础上写的袋装法&#xff08;bagging&#xff09;和随机森林&#xff08;random forest&#xff09;的算法实现。全文的结构是&#xff1a; 分类树 基本知识predginisplitrules…

数据科学学习心得_学习数据科学时如何保持动力

数据科学学习心得When trying to learn anything all by yourself, it is easy to lose motivation and get thrown off track.尝试自己学习所有东西时&#xff0c;很容易失去动力并偏离轨道。 In this article, I will provide you with some tips that I used to stay focus…