UVA490 题解

· · 题解

给你一个由字符组成的矩阵,将它们顺时针翻转 90 ° 后输出这个矩阵(有空格的地方要补回空格)。

这题用 `char` 解决也不是不行,但是用 `string` 可以**更方便的处理**。 首先,我们使用 `getline` 读取一行,`getline` 的具体使用方法为:`getline(cin,str)`(`str`为要输入的 `string` 类字符串)。输入的时候,顺便统计每行字符串的最大长度。 然后我们做两重循环,第一重枚举长度 $i$,第二重枚举行数 $j$。如果当前枚举到的这一行的长度小于我们当前我们枚举到的长度,我们就输出空格,否则输出 $str_{j,i}$。 - ## 实现 ```cpp #include<bits/stdc++.h> #define Max 1001 using namespace std; int len=-1,n; string str[Max]; int main(){ while(getline(cin,str[++n])){//++n记录行数 len=max(int(str[n].size()),len); } for(int i=0;i<len;i++){ for(int j=n-1;j>0;j--){ if(str[j].size()<i+1) printf(" "); else printf("%c",str[j][i]); } printf("\n"); } return 0; } ```