题意:给定一些代码片段,按给定的个时对其输出。
代码:
#include<cstdio>
#include<iostream>
#include<string>
#include<vector>
#include<set>
#include<map>
#include<algorithm>
using namespace std;
string before[1005];
string a[1005][85];
int cnt[1005]= {0};
int Max=0;
void change(int x) {
before[x]+=" ";
for(int i=0; i<before[x].size(); i++) {
if(before[x][i]!=' ') {
a[x][cnt[x]]+=before[x][i];
} else if(i!=0&&before[x][i-1]!=' ') {
cnt[x]++;
}
}
Max=max(Max,cnt[x]);
}
int main() {
int T=0;
while(getline(cin,before[T++]));
for(int i=0; i<T; i++) {
change(i);
}
T--;
int longest[85]= {0};
for(int i=0; i<T; i++) {
for(int j=0; j<Max; j++) {
int x=a[i][j].size();
longest[j]=max(longest[j],x);
}
}
for(int i=0; i<T; i++) {
for(int j=0; j<cnt[i]; j++) {
cout<<a[i][j];
if(j!=cnt[i]-1) {
for(int k=a[i][j].size(); k<=longest[j]; k++) {
cout<<' ';
}
}
}
cout<<endl;
}
return 0;
}
本文介绍了一个用于代码对齐的算法,该算法通过分析输入的代码片段,并将其重新格式化为统一的对齐样式,便于阅读和理解。通过对原始代码进行逐行解析,将每一行的非空字符进行记录和对齐,确保所有代码片段具有相同的格式。
337

被折叠的 条评论
为什么被折叠?



