2898: C-Z型变换

时间限制: 1 Sec  内存限制: 128 MB

提交: 53  解决: 15

题目描述

让我们来玩个Z型变换的游戏,游戏的规则如下:
给你一个字符串,将它以Z字型的形状不断伸展开,
如给定字符串为"abcdefghijklmnopqrstuvwxyz",
假设Z字形的宽度为4,那么我们展开为
a        g        m        s        y
b     f  h     l  n     r   t     x  z
c  e     i  k     o  q     u  w
d         j         p         v
   
现在我们一行一行读出字母,空格均省略,则得到:
agmsybfhlnrtxzceikoquwdjpv
明白了吗?
那么问题来了:已知给定的字符串和Z字形的宽度,求展开后按行读取的字符串是什么。

输入

多组数据输入,直到文件末。每行包含一个字符串s代表需要展开的字符串,一个正整数t,代表Z字形的宽度
字符串中只包含英文字母,长度<=100。

输出

每组数据输出展开后按行读取组成的字符串。

样例输入

PAYPALISHIRING 3

样例输出

PAHNAPLSIIGYIR

你  离  开  了  ,  我  的  世  界  里  只  剩  下  雨  。  。  。

#include <iostream>
using namespace std;
int main()
{
char s[100];
char out[100];
int n,i,len,j,temp,temp1,temp2,count;
while(cin>>s,cin>>n)
{
count=0;
len=0;
temp=2*(n-1);
while(s[len++]!=NULL);
len--;
if(n==1)cout<<s;
else
{
for(i=0; i<n; i++)
{
if(i==0||i==n-1)
{
out[count++]=s[i];
for(j=temp; i+j<len; j+=temp)
out[count++]=s[i+j];
}
else
{
out[count++]=s[i];
temp1=temp-2*i;
temp2=2*i;
if(temp1==temp2)
{
for(j=temp1; i+j<len; j+=temp1)
out[count++]=s[i+j];
}
else
{
for(j=temp1; i+j<len; j+=temp)
{
out[count++]=s[i+j];
if(i+j+temp2<len)
out[count++]=s[i+j+temp2];
}
}
}
}
for(i=0; i<len; i++)
cout<<out[i];
}
cout<<'\n';
}
return 0;
}

YTU 2898: C-Z型变换的更多相关文章

  1. Z 字形变换 C++实现 java实现 leetcode系列(六)

    Z 字形变换  java实现 C++实现  将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行数为 ...

  2. C#版[击败100.00%的提交] - Leetcode 6. Z字形变换 - 题解

    版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - L ...

  3. Leetcode题库——6.Z字形变换

    @author: ZZQ @software: PyCharm @file: convert.py @time: 2018/9/20 20:12 要求: Z字形变换 将字符串 "PAYPAL ...

  4. LeetCode Golang 6. Z 字形变换

    6. Z 字形变换 将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L ...

  5. Leetcode(6)Z字形变换

    Leetcode(6)Z字形变换 [题目表述]: 将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" ...

  6. Java实现 LeetCode 6 Z字形变换

    6. Z 字形变换 将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L ...

  7. [LeetCode] Z字型变换

    题目内容: 将字符串 "PAYPALISHIRING" 以Z字形排列成给定的行数: P A H N A P L S I I G Y I R 之后从左往右,逐行读取字符:" ...

  8. leetcode 6 z字型变换

    执行用时 :64 ms, 在所有 Python3 提交中击败了99.74%的用户由题目可知 我们的最终字符串会被摆成 numRows 行,那我们理解为 最终结果是numRows个字符串相加 先建立等于 ...

  9. leetcode 6/300 Z字型变换 py

    目录 题目说明 方法一:利用flag 题目说明 方法一:利用flag 简单来说就是利用flag来表示方向,真的神来之笔. class Solution: def convert(self, s: st ...

随机推荐

  1. 大项目之网上书城(五)——主页(End)

    目录 大项目之网上书城(五)--主页(End) 主要改动 1.主页(终于完成啦) 完整代码 效果图 2.head.jsp的小改动 代码 3.login.jsp ###代码 效果图 4.login.js ...

  2. 启发式合并CSU - 1811

    F - Tree Intersection CSU - 1811 Bobo has a tree with n vertices numbered by 1,2,…,n and (n-1) edges ...

  3. luogu 2257 YY的GCD

    题目描述: 给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对. 题解: 代码: #include<cstdio> # ...

  4. Memcache 分布式存储 【一致性Hash】crc32

    class memcacheHash { private $_node = array(); private $_nodeData = array(); private $_keyNode = 0; ...

  5. django-2 models

    一个model 对应DB的一张表 models 以类的形式表现: 一些字段.数据的一些行为 对类.类的对象 操作,无需写SQL = >  object relation mapping  ORM ...

  6. python爬虫入门02:教你通过 Fiddler 进行手机抓包

    哟~哟~哟~ hi起来 everybody 今天要说说怎么在我们的手机抓包 通过 python爬虫入门01:教你在Chrome浏览器轻松抓包 我们知道了 HTTP 的请求方式 以及在 Chrome 中 ...

  7. stark组件之时间插件(九)

    在模型model中用的都是时间字段DateTimeField字段,在后台处理中可以看到,在生成modelform过程中,继承的是BaseModelForm,而其对时间字段加入了特殊的date_time ...

  8. 在jupyter notebook 中编辑公式

    jupyter notebook是一个python的交互式开发环境,广泛应用于数据分析的场景下. 在jupyter notebook中,还可以很方便的编辑数学公式. 1.Markdown状态 编辑公式 ...

  9. IntelliJ IDEA 13.1.1版本偶然的错误

    总之很悲催也很浪费时间,这款软件很喜欢,不想卸载 图片中的style.css使得style.css一直是文本形式 将style.css删除就恢复正常了,这个错误弄了半天才搞定,心累.

  10. Django——配置服务器上线

    使用UWSGI和NGINX配置项目上线 首先你得有一个拿得出手的项目 其次,购买了域名,也备案成功了 将settings.py中的DEBUG设置为False 配置Uwsgi 在项目(哪里都可以)中创建 ...