L1-039 古风排版(PTA)

2024-03-20 06:52
文章标签 排版 l1 pta 039 古风

本文主要是介绍L1-039 古风排版(PTA),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • L1-039 古风排版
    • 题目描述
    • 模拟

L1-039 古风排版

题目描述

中国的古人写文字,是从右向左竖向排版的。本题就请你编写程序,把一段文字按古风排版。

输入格式:
输入在第一行给出一个正整数N(<100),是每一列的字符数。第二行给出一个长度不超过1000的非空字符串,以回车结束。

输出格式:
按古风格式排版给定的字符串,每列N个字符(除了最后一列可能不足N个)。

输入样例:

4
This is a test case

输出样例:

asa T
st ih
e tsice s

模拟

这段代码实现了一个将给定字符串按照古风排版输出的功能。下面是对代码的详细注释:

#include<bits/stdc++.h> // 包含STL库
using namespace std;int main()
{int n; // 定义一个整数n,用于存储每列的字符数cin>>n; // 从标准输入读取每列的字符数cin.ignore(); // 忽略掉之前读取整数后留在输入缓冲区中的换行符string s; // 定义一个字符串s,用于存储输入的文本string a[100]; // 定义一个字符串数组a,用于存储排版后的每一列文本,最多支持100列getline(cin,s); // 从标准输入读取一行文本到s中int flag=0; // 定义一个整数flag,用于标记最后一列是否需要补空格for(int i=0; ;i++) // 无限循环,用于计算需要补空格的数量{if(i*n>=s.size()) // 如果当前列的起始字符索引大于等于字符串长度{flag=i*n-s.size(); // 计算需要补的空格数break; // 跳出循环}}for(int i=0;i<s.size();i++) // 遍历输入的字符串{int t=i%n; // 计算当前字符应该放在哪一列a[t]+=s[i]; // 将字符添加到对应列的字符串中if(i==s.size()-1&&flag>0) // 如果是最后一个字符且需要补空格{while(flag) // 循环补空格{a[n-flag]+=' '; // 在需要补空格的列补上空格flag--; // 减少需要补的空格数}}}for(int i=0;i<n;i++) // 遍历每一列{reverse(a[i].begin(),a[i].end()); // 将每一列的字符串反转,因为古风排版是从下到上的cout<<a[i]<<endl; // 输出每一列的字符串}return 0; // 程序结束
}

这段代码的主要逻辑是:

  1. 读取每列的字符数n和待排版的字符串s
  2. 通过一个无限循环计算最后一列可能不足n个字符的情况下需要补充的空格数。
  3. 遍历字符串s,根据字符的索引和每列的字符数n,将字符分配到对应的列中。如果是最后一个字符且需要补空格,则在相应的列中补上空格。
  4. 最后,将每一列的字符串反转(因为古风排版是从下到上的),然后输出每一列。

这样,就实现了将输入的字符串按照古风排版输出的功能。

这篇关于L1-039 古风排版(PTA)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/828625

相关文章

PTA求一批整数中出现最多的个位数字

作者 徐镜春 单位 浙江大学 给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数1234、2345、3456,其中出现最多次数的数字是3和4,均出现了3次。 输入格式: 输入在第1行中给出正整数N(≤1000),在第二行中给出N个不超过整型范围的非负整数,数字间以空格分隔。 输出格式: 在一行中按格式“M: n1 n2 ...”输出,其中M是最大次数,n

【408DS算法题】039进阶-判断图中路径是否存在

Index 题目分析实现总结 题目 对于给定的图G,设计函数实现判断G中是否含有从start结点到stop结点的路径。 分析实现 对于图的路径的存在性判断,有两种做法:(本文的实现均基于邻接矩阵存储方式的图) 1.图的BFS BFS的思路相对比较直观——从起始结点出发进行层次遍历,遍历过程中遇到结点i就表示存在路径start->i,故只需判断每个结点i是否就是stop

搜狗浏览器打开CSDN博客排版错乱问题解决

之前发生过几次,不知道什么原因。 今天一直用着好好的,打开一个csdn连接,显示404,博文被删除了,于是就用百度快照打开试试,百度快照打开显示的排版很乱也没找到有用信息。 后面再浏览CSDN博客就排版错乱,显示一个大大二维码图片。 尝试删除IE缓存无效,使用谷歌浏览是好的。 基本锁定就是搜狗缓存导致的,于是找如何删除搜狗缓存   清除后恢复正常

pta-2024年秋面向对象程序设计实验一-java

文章申明:作者也为初学者,解答仅供参考,不一定是最优解; 一:7-1 sdut-sel-2 汽车超速罚款(选择结构) 答案: import java.util.Scanner;         public class Main { public static void main(String[] arg){         Scanner sc=new Scanner(System

【机器学习 sklearn】模型正则化L1-Lasso,L2-Ridge

#coding:utf-8from __future__ import divisionimport sysreload(sys)sys.setdefaultencoding('utf-8')import timestart_time = time.time()import pandas as pd# 输入训练样本的特征以及目标值,分别存储在变量X_train与y_train之中。

AI基础 L1 Introduction to Artificial Intelligence

什么是AI Chinese Room Thought Experiment 关于“强人工智能”的观点,即认为只要一个系统在行为上表现得像有意识,那么它就真的具有理解能力。  实验内容如下: 假设有一个不懂中文的英语说话者被关在一个房间里。房间里有一本用英文写的中文使用手册,可以指导他如何处理中文符号。当外面的中文母语者通过一个小窗口传递给房间里的人一些用中文写的问题时,房间里的人能够依

前端百科---Web聊天排版

当页面需要进行展示对话聊天信息时,好的布局会让人赏心悦目.下面直接看demo: <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Document</title><style type="text/css">html, body, div, img, span {padding: 0;margin: 0

Newman生成测试报告排版混乱

问题:样式文件错误 解决方法:修改bootstrap样式文件的路径 <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/5.3.1/css/bootstrap.min.css">

【Python机器学习】核心数、进程、线程、超线程、L1、L2、L3级缓存

如何知道自己电脑的CPU是几核的,打开任务管理器(同时按下:Esc键、SHIFT键、CTRL键) 然后,点击任务管理器左上角的性能选项,观察右下角中的内核:后面的数字,就是你CPU的核心数,下图中我的是16个核心的。 需要注意的是,下面的逻辑处理器:32 表示支持 32 线程(即超线程技术) 图中的进程:和线程:后面的数字代表什么 在你上传的图片中,“进程:180” 和 “线程:3251”

Python 3.6 api-ms-win-crt-runtime-l1-1-0.dll丢失

问题: Python 3.6安装或者运行时出现丢失api-ms-win-crt-runtime-l1-1-0.dll异常: 解决办法: 下载安装VC运行库即可。 地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=48145&e6b34bbe-475b-1abd-2c51-b5034bcdd6d2=True 点击