旋转句子
时间限制: 1S类别: 二维数组->简单
晚于: 2023-11-17 23:55:00后提交分数乘系数50%
问题描述 :
旋转句子,要求把输入的句子按顺时针旋转90度。即输入时的句子是从左至右和自上而下的显示方式,输出时变成从上到下和从右到左的显示方式。换句话说,就是输入的最后一句输出在最左边的列,输入的第一句输出在最右边的列。
输入说明 :
输入时最多100个句子(1句即一行),每句不超过100个字符。合法字符包括:换行符、空格、任何标点符、数字、小写和大写英文字母。
注意:一个句子可能不包含任何字符,即空行。
输出说明 :
按顺时针旋转90度后的那些句子。
注意:如果输入了n个句子,则输出就有n列,输出的最下面一行也有n列。可参见输出范例,每一行都有4个字符,最下面一行的第1、3、4个字符都是空格。
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
vector<string>s;
string stence;
int count=0,j;
while(getline(cin,stence))
{
count++;
s.push_back(stence);
}
reverse(s.begin(),s.end());
int len=0;
for(int i=0; i<count; ++i)
{
if(s[i].length()>len)
len=s[i].length();
}
for(j=0; j<len-1; j++)
{
for(int row=0; row<count; row++)
{
if(s[row].length()>j)
cout<<s[row][j];
else cout<<" ";
}
cout<<endl;
}
return 0;
}