To and Fro
Time Limit: 1000MS | Memory Limit: 30000K | |
Total Submissions: 4405 | Accepted: 2906 |
Description
Mo
and Larry have devised a way of encrypting messages. They first decide
secretly on the number of columns and write the message (letters only)
down the columns, padding with extra random letters so as to make a
rectangular array of letters. For example, if the message is "There’s
no place like home on a snowy night" and there are five columns, Mo
would write down
Note that Mo includes only letters and writes them all in lower case. In this example, Mo used the character "x" to pad the message out to make a rectangle, although he could have used any letter.
Mo then sends the message to Larry by writing the letters in each row, alternating left-to-right and right-to-left. So, the above would be encrypted as
toioynnkpheleaigshareconhtomesnlewx
Your job is to recover for Larry the original message (along with any extra padding letters) from the encrypted one.
t o i o y h p k n n e l e a i r a h s g e c o n h s e m o t n l e w x
Note that Mo includes only letters and writes them all in lower case. In this example, Mo used the character "x" to pad the message out to make a rectangle, although he could have used any letter.
Mo then sends the message to Larry by writing the letters in each row, alternating left-to-right and right-to-left. So, the above would be encrypted as
toioynnkpheleaigshareconhtomesnlewx
Your job is to recover for Larry the original message (along with any extra padding letters) from the encrypted one.
Input
There
will be multiple input sets. Input for each set will consist of two
lines. The first line will contain an integer in the range 2. . . 20
indicating the number of columns used. The next line is a string of up
to 200 lower case letters. The last input set is followed by a line
containing a single 0, indicating end of input.
Output
Each input set should generate one line of output, giving the original plaintext message, with no spaces.
Sample Input
5 toioynnkpheleaigshareconhtomesnlewx 3 ttyohhieneesiaabss 0
Sample Output
theresnoplacelikehomeonasnowynightx thisistheeasyoneab
此题需要注意的就是设置一个控制左右方向的Flag标志位
import java.util.*; public class Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in); int num = 0; String str; char[][] array; while(true) { num = Integer.valueOf(cin.nextLine()).intValue(); if(num == 0) break; else { str = cin.nextLine(); array = convert(str, num); System.out.println(getRawStr(array)); } } } private static char[][] convert(String str, int col) { int toRight = 1; int row = 0; if(str.length()%col == 0) row = str.length()/col; else row = str.length()/col + 1; char[][] array = new char[col][row]; int index = 0; for(int i = 0; i < row; i++) { if(toRight % 2 == 1) for(int j = 0; j < col; j++) array[j][i] = str.charAt(index++); else for(int j = col-1; j >= 0; j--) array[j][i] = str.charAt(index++); toRight++; } return array; } private static String getRawStr(char[][] array) { StringBuffer sb = new StringBuffer(); for(int i = 0; i < array.length; i++) for(int j = 0; j < array[0].length; j++) sb.append(array[i][j]); return sb.toString(); } }
发表评论
-
POJ ACM习题【No.2328】
2009-07-05 19:43 898Guessing Game Time ... -
POJ ACM习题【No.3157】
2009-04-26 23:54 1634Java vs C++ Time Lim ... -
POJ ACM习题【No.2924】
2009-04-26 11:52 923Gauß in Elementary School ... -
POJ ACM习题【No.3176】
2009-04-26 10:53 1043Cow Bowling Time Lim ... -
POJ ACM习题【No.3173】
2009-04-25 23:30 902Parkside's Triangle ... -
POJ ACM习题【No.2845】
2009-04-25 22:25 121401000001 Time Limit: ... -
POJ ACM习题【No.2140】
2009-04-25 21:26 934Herd Sums Time Limit ... -
POJ ACM习题【No.1969】
2009-04-25 20:59 859Count on Canton Time ... -
POJ ACM习题【No.2840】
2009-04-25 19:24 1005Big Clock Time Limit ... -
POJ ACM习题【No.2521】
2009-04-24 22:41 847How much did the businessman l ... -
POJ ACM习题【No.1326】
2009-04-24 22:14 1010Mileage Bank Time Li ... -
POJ ACM习题【No.3325】
2009-04-24 21:15 1092ICPC Score Totalizer Software ... -
POJ ACM习题【No.2756】
2009-04-24 20:28 771Autumn is a Genius T ... -
POJ ACM习题【No.3062】
2009-04-24 20:10 808Celebrity jeopardy ... -
POJ ACM习题【No.1547】
2009-04-23 20:03 774Clay Bully Time Limi ... -
POJ ACM习题【No.1552】
2009-04-23 19:39 751Doubles Time Limit: ... -
POJ ACM习题【No.1007】
2009-04-23 19:24 849DNA Sorting Time Lim ... -
POJ ACM习题【No.1565】
2009-04-22 22:40 841Skew Binary Time Lim ... -
POJ ACM习题【No.2403】
2009-04-22 22:18 859Hay Points Time Limi ... -
POJ ACM习题【No.1862】
2009-04-22 20:12 700Stripies Time Limit: ...
相关推荐
方便大家有针对性地联系 祝大家AC愉快~
pojACM题目分类,便于各类型同学分别做题有所参考
相信大家在做poj上的题目的时候如果没有分类的话很迷茫吧....这里有一份目前比较全面的poj题目分类..
02.北大POJ题库使用指南.docx02.北大POJ题库使用指南.docx02.北大POJ题库使用指南.docx02.北大POJ题库使用指南.docx02.北大POJ题库使用指南.docx02.北大POJ题库使用指南.docx02.北大POJ题库使用指南.docx02.北大POJ...
acm数据结构总结.doc acm数据结构总结.doc
poj acm题解,包括绝大部分poj题目的题解,可以供acm爱好者学习研究
本文件是ACM里的一些题目的源码、原题和习题的分析及详细解答。欢迎各位下载
http://acm.pku.edu.cn/JudgeOnline/ acm的AC解题报告
POJ ACM 1015 Jury Compromise 两种解法 解题报告
西工大C语言POJ习题答案.docx
PKU 、POJ ACM/ICPC300多题的代码,还有各种典型问题的分类代码
poj 2007 Scrambled Polygon.md
poj 1984 Navigation Nightmare.md
poj 3435 Sudoku Checker.md
poj 2900 Griddy Hobby.md
poj 2430 Lazy Cows.md
poj 3183 Stump Removal.md
poj 2403 Hay Points.md
poj 2941 Homogeneous Squares.md
poj 1313 Booklet Printing.md