本文主要是介绍算法竞赛入门经典 第二版 习题5-1 代码对齐 Alignment of Code uva1593,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:https://vjudge.net/problem/UVA-1593
思路:用vector的数组模拟string的二位数组存储单词,记录下没列单词的最大长度,然后用setw设置位宽,左对齐输出单词即可。
注:每行的最后一列直接输出,不能设置列宽,否则会输出多余的空格。
代码:
#include <iostream>
#include <string>
#include <sstream>
#include <cstdio>
#include <iomanip>
#include <map>
#include <set>
#include <vector>
#include <cstring>
#include <algorithm>
using namespace std;int maxlen[1000];
vector<string> code[1000];int main()
{string s;int cot = 0;while(getline(cin, s)){stringstream ss;ss << s;int i=0;while(ss >> s){code[cot].push_back(s);if(s.size()>maxlen[i]){maxlen[i] = s.size();}i++;}cot++;}for(int i=0; i<cot; i++){for(int j=0; j<code[i].size(); j++){if(j!=code[i].size()-1){cout << setiosflags(ios::left) << setw(maxlen[j]) << code[i][j] << ' ';}else{cout << code[i][j] << endl;}}}return 0;
}
这篇关于算法竞赛入门经典 第二版 习题5-1 代码对齐 Alignment of Code uva1593的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!