题目描述
给你一个字符串 s。请你按照单词在 s 中的出现顺序将它们全部竖直返回。 单词应该以字符串列表的形式返回,必要时用空格补位,但输出尾部的空格需要删除(不允许尾随空格)。 每个单词只能放在一列上,每一列中也只能有一个单词。
样例
样例输入 1
HOW ARE YOU
样例输出 1
HAY
ORO
WEU
样例输入 2
TO BE OR NOT TO BE
样例输出 2
TBONTB
OEROOE
T
数据范围与提示
1 <= s.length <= 200
s 仅含大写英文字母。
题目数据保证两个单词之间只有一个空格。
#include <bits/stdc++.h>
using namespace std;
const int N = 1005;
char ans[N][N];
int main() {
string s;
int i = 1, j = 1, m;
while (cin >> s) {
for (int k = 0; k < s.size(); k++)
if (s[k] != ' ' && s[k] != '\n')
ans[i][j] = s[k], i++;
j++, m = i, i = 1;
}
for (int k = 1; k < m; k++) {
for (int h = 1; h < j; h++)
if (ans[k][h] != ' ' && ans[k][h] != '\n')
cout << ans[k][h];
cout << endl;
}
return 0;
}
大佬求助!!!