/*1036. Crypto Columns
大意:给出一个key,按照key中字母大小对应的下标进行放置一个串,
每个下标对应一列。然后从左上到右下地还原输出整个字符串
*/
#include<stdlib.h>
#include<iostream>
#include<algorithm>
using namespace std;
struct node{
int index;
char c;
};
bool compare(node a, node b)
{
return a.c < b.c;
}
int main()
{
string key;
key = "1";
string text;
node keyNode[10];
char out[10][10];
while(cin >> key && key != "THEEND")
{
cin >> text;
for(int i=0; i<key.length(); i++)
{
keyNode[i].c = key[i];
keyNode[i].index = i;
}
sort(keyNode, keyNode+key.length(), compare);
int textCounter = 0;
for(int i=0; i<key.length(); i++)
{
for(int j=0; j<text.length()/key.length(); j++)
{
out[j][keyNode[i].index] = text[textCounter];
textCounter++;
}
}
for(int i=0; i<text.length()/key.length(); i++)
for(int j=0; j<key.length(); j++)
cout <<out[i][j];
cout << endl;
}
system("pause");
return 0;
}
Sicily.1036. Crypto Columns
最新推荐文章于 2016-05-22 18:59:49 发布