Contest1376 - "师创杯"烟台大学第二届ACM程序设计精英赛复现Problem C: C-Z型变换
2015-04-09 16:04
393 查看
Description
让我们来玩个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字形的宽度,求展开后按行读取的字符串是什么。
Input
多组数据输入,直到文件末。每行包含一个字符串s代表需要展开的字符串,一个正整数t,代表Z字形的宽度字符串中只包含英文字母,长度<=100。
Output
每组数据输出展开后按行读取组成的字符串。Sample Input
PAYPALISHIRING 3
Sample Output
PAHNAPLSIIGYIR
HINT
AC代码:#include <iostream> using namespace std; int main(){ char s[100]; char out[100]; int n,i,len,j,temp,temp1,temp2,k,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<<'\12'; } return 0; }
运行结果:
卡了好久,判断字符数组个数用NULL。
ac感觉最棒!
相关文章推荐
- Contest1376 - "师创杯"烟台大学第二届ACM程序设计精英赛复现Problem H: H-Sum 3s
- Contest1376 - "师创杯"烟台大学第二届ACM程序设计精英赛复现 A--A Repeating Characters
- Contest1376 - "师创杯"烟台大学第二届ACM程序设计精英赛复现F-A Simple Question
- Contest1376 - "师创杯"烟台大学第二届ACM程序设计精英赛复现 B--Faultfinding
- 程序设计模式之"监听器模型"
- 第二届"春回燕归 浙籍精英峰会"见闻
- 利用ftp服务程序本身设计的"缺陷"取得最高权限
- 身份证校验 如果让你设计个程序,用什么变量保存身份证号码呢?长整数可以吗?不可以! 因为有人的身份证最后一位是"X"
- acm/icpc中国 辽宁省第二届大学生程序设计竞赛结束了
- 2001-2002 ACM Northeastern European Regional Programming Contest-Problem G-"Library"
- 未能在"设计"视图中打开.在""块中,以不同方式将值括起来的解决方案汇总
- (小常识)为什么程序中不能使用system("cd ..")来改变pwd(present working directory)
- "hello,world!"win32汇编小程序
- "某个程序安装已在安装计算机上创建挂起的文件操作" 解决办法 另解
- "某个程序安装已在安装计算机上创建挂起的文件操作" 解决办法 另解
- SQLServer2000的"以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机"错误
- 打开文件->选择程序 出现"拒绝访问"
- 升级IE弹出"以前的安装有尚未完成的操作,需要重新启动。建议在运行Internet Explorer安装程序之前重新启动计算机。现在安装程序将关闭"
- 安装Visual Studio 6的"Error Lauching acmboot.exe"问题解决方法
- 设计模式-OOD的设计原则(5)-"合成聚合复用原则"