HDU - 1200 To and Fro(水)
2015-10-02 15:45
288 查看
题目大意:有一个字符串,原串是从左到右,从上往下,写成了m列,k行
现在给你这个字符串,从第一行开始,奇数行从左往右,偶数行从右往左的出现顺序,然后要求你还原这个字符串
解题思路:找到规律,直接解决
现在给你这个字符串,从第一行开始,奇数行从左往右,偶数行从右往左的出现顺序,然后要求你还原这个字符串
解题思路:找到规律,直接解决
#include <cstdio> #include <cstring> const int N = 210; char str ; int n; void solve() { int len = strlen(str); int row = len / n; //flag == 1表示奇数行,start表示的是都到第几列了, interval表示间隔 int t = len, flag = 1, start = 0, interval = 1; int pos = start; if (row == 1) { printf("%s\n", str); return ; } while (t--) { printf("%c", str[pos]); if (flag) pos += 2 * n - 1; else pos += interval; if (pos >= len) { pos = ++start; flag = 1; n--; interval += 2; } else flag ^= 1; } printf("\n"); } int main() { while (scanf("%d", &n) != EOF && n) { scanf("%s", str); solve(); } return 0; }
相关文章推荐
- 数据库的优化
- 枚举类型的基本用法
- Matlab基础知识
- Extjs4.2 model关联读复杂XML
- 面试题22:栈的压入、弹出序列
- vfork http://blog.csdn.net/tennysonsky/article/details/45847107
- BZOJ 3531 旅行【树链剖分】
- 数据库最最常用语句(10年工作笔记)
- java抽象类
- 如何在Linux上使用netstat命令查证DDOS攻击
- android布局属性大全
- 安卓控件使用系列12:CheckBox复选框控件的使用
- 轮廓线动态规划问题
- swift闭包
- iOS 多线程实例(NSThread售票窗口的模拟)
- web前端性能优化
- ZOJ - 2421 Recaman's Sequence(打表水题)
- swift函数
- C++单例模式
- yael for ubuntu 部署日志