字形变换-头歌

news2024/11/25 17:21:50

 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行Z字形排列。之后,你的输出需要从左往右逐行读取,产生出一个新的字符串

示例 : 输入: s ="QAZWSXEDCRFVTG",numRows = 4 输出:"QETAXDVGZSCFWR"

 A->X->D对应代码中的注释部分

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char* convert(char* s, int numRows) {
    if (numRows == 1) {
        return s; // 如果行数为1,直接返回原字符串
    }

    int len = strlen(s);
    char* ans = (char*)malloc((len+1)*sizeof(char));
    ans[len] = '\0'; // 新建字符串数组并且初始化为'\0'
    int k = 0;
    int step = (numRows-1)*2; // 每个Z字形的步长
    for (int i = 0; i < numRows; i++) {
        int index = i;
        int diff = (numRows-i-1)*2; 
        /*******Begin********/
       int diff2 = i*2; 

        while(index < len) {
            if(i != 0 && i != numRows-1) { // 非首尾行需要考虑两种跨度
                if(index < len) {
                    ans[k++] = s[index];    //A
                }
                index += diff;
                if(index < len) {
                    ans[k++] = s[index];      //X
                }
                index += diff2;                //D
            } else {                    // 首尾行只需考虑一个跨度
                if(index < len) {
                    ans[k++] = s[index];
                }
                index += step;
            }
        }
    }

    return ans;
}

int main() {
    char s[20];
    scanf("%s", &s);
    int numRows;
    scanf("%d", &numRows);
    printf("%s", convert(s,numRows)); 
    return 0;
}

结果

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

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

相关文章

直播会议一体机安卓主板_5G智能会议一体机双屏异显设计

5G直播会议一体机主板是专门为支持音视频输入输出而设计的&#xff0c;内置有安卓13系统&#xff0c;可兼容多种直播和会议软件。该产品可广泛应用于智能会议一体机、便携式直播设备、录播导播、无人机直播以及视频传输等多个领域。 这款主板采用了国产6纳米旗舰芯片紫光展锐T8…

试题:最大的矩形(给定直方图里面积最大的矩形)

问题描述 在横轴上放了n个相邻的矩形&#xff0c;每个矩形的宽度是1&#xff0c;而第i&#xff08;1 ≤ i ≤ n&#xff09;个矩形的高度是hi。这n个矩形构成了一个直方图。例如&#xff0c;下图中六个矩形的高度就分别是3, 1, 6, 5, 2, 3。 请找出能放在给定直方图里面积最大的…

【MySQL】想不想知道数据库到底是啥?想了就进来看看

数据库是什么 前言正式开始连接mysql理解mysql第一层理解第二层理解第三层理解 小问题见见猪跑show databases;create database xxx;create table xxx; 主流数据库mysql架构SQL语句的种类存储引擎 前言 你手上有没有MySQL&#xff1f;有了最好&#xff0c;没有的话建议下一个&…

Echarts多条折线图 y轴与实时值提示框数值不一致解决方法:

Echarts多条折线图 y轴与实时值提示框数值不一致解决方法&#xff1a; 删除stack属性即可 stack看官网就是数据堆叠 发现这个bug&#xff0c;特此记录

【虹科干货】TWAMP:什么是双向主动测量协议?

TWAMP&#xff08;双向主动测量协议&#xff09;是什么&#xff1f;它在网络性能测量中有什么作用&#xff1f;如果您对IP网络中设备之间的性能问题感兴趣&#xff0c;或者想了解TWAMP与OWAMP之间的区别&#xff0c;以及TWAMP测试的好处。 一、TWAMP是什么&#xff1f; TWAMP代…

GeoGebra:数学动画制作工具重磅来袭

【线性代数】线性代数可视化工具&#xff1a;manim manim是之前我跟大家分享的一个线性代数动画制作工具。 但我之前的描述有些许偏差&#xff0c;这里要更正一下&#xff0c;manim不仅限于制作线性代数动画&#xff0c;也可以制作数学其他学科的动画&#xff0c;例如微积分&…

数据分析-numpy

numpy numpy numpy简介优点下载ndarray的属性输出数据类型routines 函数ndarray对象的读写操作ndarray的级联和切分级联切分 ndarray的基本运算广播机制&#xff08;Broadcast&#xff09;ndarry的聚合操作数组元素的操作numpy 数学函数numpy 查找和排序 写在最后面 简介 nump…

k8s的安装部署,详细过程展示(保姆级安装教程)

k8s应用部署方式演变 在部署应用程序的方式上&#xff0c;主要经历了三个时代&#xff1a; 传统部署&#xff1a;互联网早期&#xff0c;会直接将应用程序部署在物理机上 优点&#xff1a;简单&#xff0c;不需要其它技术的参与 缺点&#xff1a;不能为应用程序定义资源使用…

PanNet: A deep network architecture for pan-sharpening(ICCV 2017)

文章目录 AbstractIntroduction过去方法存在的问题我们提出新的解决方法Related work PanNet: A deep network for pan-sharpening&#xff08;PanNet:用于泛锐化的深度网络&#xff09;Background and motivationPanNet architectureSpectral preservationStructural preserva…

网络原理---拿捏HTTP协议:请求和响应

文章目录 认识请求首行URLURL的格式URL的encode和decode 版本号方法GET方法POST方法GET VS POST 请求头&#xff1a;headerHostContent-Length 和 Content-TypeUser-Agent&#xff08;UA&#xff09;RefererCookie 空行正文&#xff1a;body如何构造HTTP请求&#xff1f;浏览器…

浙大恩特客户资源管理系统任意文件上传漏洞复现

0x01 产品简介 浙大恩特客户资源管理系统是一款针对企业客户资源管理的软件产品。该系统旨在帮助企业高效地管理和利用客户资源&#xff0c;提升销售和市场营销的效果。 0x02 漏洞概述 浙大恩特客户资源管理系统中fileupload.jsp接口处存在文件上传漏洞&#xff0c;未经身份认…

rv1126-rv1109-添加分区,定制固件,开机挂载功能

===================================================================== 修改分区: 这里是分区的txt文件选择; 这里是分区的划分,我这里回车了,方便看 FIRMWARE_VER: 8.1 MACHINE_MODEL: RV1126 MACHINE_ID: 007 MANUFACTURER: RV1126 MAGIC: 0x5041524B ATAG: 0x00200…

Ubuntu18.04.6共享文件夹的创建,以及在哪打开共享文件夹

目录 1、打开虚拟机的设置页面 2、设置共享文件夹 3、确认是否成功设置共享文件夹 4、完成后在进入到/mnt/hgfs ls查看&#xff0c;发现共享文件夹已经出现可以使用 1、打开虚拟机的设置页面 两种方式&#xff1a; &#xff08;1&#xff09;直接点击“编辑虚拟机设置” …

android自定义switch颜色

效果图&#xff1a; 原生样式和自己app的主题颜色不搭配&#xff0c;就可以这样自定义颜色样式。以下代码均可直接复制粘贴使用&#xff0c;且均有注释。 实现&#xff1a; 1、 新建drawable/switch_custom_thumb_on.xml&#xff08;滑块开启状态 &#xff09; <?xml ve…

DDD系列 - 第2讲 从贫血模型、事务脚本到面向对象(富血模型)、DDD领域模型的跨越

目录 一、灵魂拷问二、CRUD Boy现状三、贫血模型四、事务脚本五、从贫血模型演变到面向对象&#xff08;富血模型&#xff09;六、借助DDD领域模型摆脱事务脚本七、更多 一、灵魂拷问 Java作为面向对象的编程语言&#xff0c;使用Java编程的你面向对象了吗&#xff1f; 二、C…

“三位一体”超级混沌工程主要特点及功能

“三位一体”超级混沌工程X-Chaos主要包括基础故障编排、业务场景故障编排、演练场景编排、故障库管理、演练场景管理、演练计划管理、演练观测和演练报告等模块&#xff0c;支持对传统架构、云环境以及国产化基础环境的IT系统进行故障演练。本文将介绍混沌工程主要特点及主要功…

剪贴板劫持--PasteJacker的使用

启动 PasteJacker [1] Windows [2] Linux [3] Exit第一次是让我们选择要攻击针对的目标系统&#xff0c;这里以Windows系统为例&#xff0c;即我自己的物理机 因此键入 1 &#xff0c;回车 [1] Download and execute a msfvenom backdoor using certutil (Web delivery Past…

现在就是成为“新程序员”的黄金时刻!

整理 | 王启隆 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; “自然语言代替了编程语言&#xff0c;大大地降低了程序员的门槛。现在&#xff0c;ChatGPT 将全球的知识库和代码都放在了你的手中&#xff0c;只要有想象力&#xff0c;人人都能成为「新程序员」…

一周成功拿下4个offer的软件测试面试题,面试必看系列

前言&#xff1a; 压到就是赚到&#xff0c;面试通过的机率就更大&#xff0c;干就完了铁子 【文章末尾给大家留下了大量的福利】 ​编辑 1、什么是兼容性测试&#xff1f;兼容性测试侧重哪些方面&#xff1f; 参考答案&#xff1a; 兼容测试主要是检查软件在不同的硬件平…

腾讯云2023年双11活动:云服务器1.8折起,还可领取9999元代金券!

2023年双11腾讯云推出了11.11云上盛惠大促活动&#xff0c;包括秒杀专区、服务器买赠、新人专区、代金券专区、境外优选、新老同享、续费专区以及热门上云场景等满足新用户、老用户、企业用户对云计算服务的各种需求。 一、腾讯云双11活动地址 活动入口&#xff1a;点此直达 …