文章目录

  • 1. 题目
  • 2. 解题

1. 题目

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

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

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

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

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

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

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

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

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

示例 1:

输入:encodedText = "ch   ie   pr", rows = 3
输出:"cipher"
解释:此示例与问题描述中的例子相同。

示例 2:

输入:encodedText = "iveo    eed   l te   olc", rows = 4
输出:"i love leetcode"
解释:上图标识用于编码 originalText 的矩阵。
蓝色箭头展示如何从 encodedText 找到 originalText 。

示例 3:

输入:encodedText = "coding", rows = 1
输出:"coding"
解释:由于只有 1 行,所以 originalText 和 encodedText 是相同的。

示例 4:

输入:encodedText = " b  ac", rows = 2
输出:" abc"
解释:originalText 不能含尾随空格,但它可能会有一个或者多个前置空格。提示:
0 <= encodedText.length <= 10^6
encodedText 仅由小写英文字母和 ' ' 组成
encodedText 是对某个 不含 尾随空格的 originalText 的一个有效编码
1 <= rows <= 1000
生成的测试用例满足 仅存在一个 可能的 originalText

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/decode-the-slanted-ciphertext
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 按题意模拟即可
class Solution {public:string decodeCiphertext(string encodedText, int rows) {int n = encodedText.size(), cols = n/rows;vector<vector<char>> mat(rows, vector<char>(cols));for(int i = 0; i < n; ++i)mat[i/cols][i%cols] = encodedText[i];string ans;for(int j = 0; j < cols; ++j){int r = 0, c = j;while(r<rows && c<cols)ans += mat[r++][c++];//45度向下遍历}while(ans.size() && ans.back()==' ')ans.pop_back();//删除尾随空格return ans;}
};

112 ms 45 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 2075. 解码斜向换位密码(模拟)相关推荐

  1. 2075. 解码斜向换位密码

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

  2. python如何调用文件进行换位加密_Python换位密码

    换位密码加密 为使得原文变得不可读取,换位密码将原始信息用一定的顺序进行重新排列,而不是用其他字符替换字符.包括空格和标点符号,这个消息有30个字符.我们将使用数字8作为密钥. 第一步是画出一些与密钥 ...

  3. python如何调用文件进行换位加密_python 换位密码算法的实例详解

    python 换位密码算法的实例详解 一前言: 换位密码基本原理:先把明文按照固定长度进行分组,然后对每一组的字符进行换位操作,从而实现加密.例如,字符串"Error should neve ...

  4. Bailian2819 W的密码【密码+模拟】

    2819:W的密码 总时间限制: 1000ms 内存限制: 65536kB 描述 加密一条信息需要三个整数码, k1, k2 和 k3.字符[a-i] 组成一组, [j-r] 是第二组, 其它所有字符 ...

  5. python换位加密算法_柱状换位密码

    我试图找出如何在Python中加密一个列换位密码,只要给定一个纯文本大写字符串和任意长度的数字键.例如,如果键是3124,字符串是'IHAVETWOCATS',它将按如下方式组织字符串:3124 IH ...

  6. Java实现凯撒密码、维吉尼亚密码、双换位密码、RC4算法加密

    文章目录 前言 一.凯撒密码 二.维吉尼亚密码 三.双换位密码 四.RC4算法加密 前言 本博文为信息安全与支付课程的课程作业. 一.凯撒密码 文件有:Caesar.java.输入文件input1.t ...

  7. Scratch编程 烧脑算法——换位密码

    Hello,我是小恐龙.今天编一个超烧脑算法--换位密码.先来了解一下什么是换位密码: 明文:hello,everyone.iamminidinosaur. 密钥:(1 5 4) 密文:lelohee ...

  8. 古典密码算法(凯撒密码,矩阵换位密码) python实现

    古典密码算法 python实现 通过编程实现替代密码和置换密码算法,在这里通过python实现了对凯撒密码的加密与解密,以及对矩阵换位密码的加密与解密. 凯撒密码的相关算法是O(n)O(n)O(n)的 ...

  9. LeetCode 91.解码方法

    LeetCode 91.解码方法 ways: s[i] = 0 : if(s[i-1] == 1 || s[i-1] == 2) :s[i]只能和前一位绑定在一起,此时dp[i] = dp[i-2]; ...

最新文章

  1. 图灵访谈 | 微盟技术专家戴頔:永远行走在路上
  2. 吴恩达机器学习笔记 —— 16 异常点检测
  3. 开源软件架构总结之——Bash(readline做输入交互式,词法语法分析,进程交互)...
  4. PAT—— 害死人不偿命的(3n+1)猜想 (1001)
  5. CFileFind 遍历目录与子目录
  6. 走近NAP功能 全面了解Vista系统安全机制
  7. c程序设计语言 练习1-6,C程序设计语言:第一章练习
  8. 面试官:ConcurrentHashMap为什么放弃了分段锁?
  9. LVS学习笔记之三种模式的特点概括
  10. C++基础与深度解析第五章: 语句
  11. 语言中根号打法_知识的诅咒,数学老师在教学中不得不防的陷阱
  12. Interface的精髓——《Thinking in Java》随笔025
  13. JavaWeb~Servlet~深入理解Cookie
  14. OPPO,ViVO手机锁屏下弹出来电界面
  15. 大家都用什么Maven插件?及本人的几个常用插件分享
  16. springboot jpa链接数据库
  17. [转贴]去除迅雷广告和弹出广告窗口
  18. spacedesk投影,将电脑屏幕投影或者扩展到手机
  19. 银凤湖公园项目-工业矿坑变公园 | 用科技与艺术让城市“绽放”
  20. 2023年互联网技术发展趋势浅析

热门文章

  1. python标准库sys_Python标准库之Sys模块使用详解
  2. python高级编程技巧
  3. 解决-ubuntu 安装redis无法启动
  4. flask模型中【外键】relationship的使用笔记
  5. MATLAB调用C/C++函数的方法
  6. 中国首台千万亿次超级计算机,中国首台千万亿次超级计算机首批设备开始试用...
  7. 猫和老鼠java下载安装_tomcat(Java服务器)
  8. 设计模式之单例模式(C++代码实现)
  9. s5pv210——I2C基础详解、I2C时序详解
  10. 洛谷P3205合唱队——区间DP