uva-1593 代码对齐

题意如下:

输入若干行代码,要求各列单词的左边界对齐且尽量靠左。

单词之间至少要空一格。每个单词不超过80个字符,

每行不超过180个字符,一共最多1000行。

注意输出时每行的最后一列后面没有空格符。

代码如下:代码中有详细的注释!

#include<iostream>
#include<sstream>
#include<string>
#include<vector>
using namespace std;
vector<string> txt[1314];
string code;
int max_len[250];//将每一列中最长的单词的长度保存下来,以便保证格式!
void print(string s,int len,char extra)
{//格式化输出!
    for(int i=0; i<s.size(); i++)
        cout<<s[i];
    for(int i=0; i<=len-s.size(); i++)
        cout<<' ';
    //cout<<'*';
}
int main()
{
    int col=0,row=0;//代码行数,col表示每一行的“单词”个数!
    while(getline(cin,code))
    {
        stringstream tran(code);//创建一个“字符串流”——tran,接下来只需要像读取cin那样读取tran即可!
        while(tran>>code)
        {
            max_len[col++]=max(max_len[col],(int)code.size());//比较长度取大值。
            txt[row].push_back(code);//将每一个单词存进容器里面!
        }
        row++,col=0;
    }
    for(int i=0; i<row; i++)
    {
        int j=0;
        for(; j<txt[i].size()-1; j++)
            print(txt[i][j],max_len[j],' ');
        cout<<txt[i][j-1]<<endl;//每行的最后一列是不用输出空格的!
    }
    return 0;
}
时间: 2024-12-28 00:00:24

uva-1593 代码对齐的相关文章

UVa 1593代码对齐

原题链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4468 这道题目的话可以使用iomanip这个头文件 1 #include<iostream> 2 #include<string> 3 #include<sstream> 4 #include<algorithm> 5 #inclu

multi-cursor做代码对齐

.title { text-align: center; margin-bottom: .2em } .subtitle { text-align: center; font-size: medium; font-weight: bold; margin-top: 0 } .todo { font-family: monospace; color: red } .done { font-family: monospace; color: green } .priority { font-fami

VS中代码对齐等快捷键

在VS2008中,选定代码后,按Ctrl+K+F组合键,可以自动进行代码对齐. 注意:要先按下Ctrl和K,再按下F,因为Ctrl+F是查找的快捷键. 也可以先按下Ctrl+K,再按下Ctrl+F. 另外,可以在"工具->选项->文本编辑器->C/C++->制表符"选项卡中设置缩进选项. 英文版本的路径为:Tools->Options->Text Editor->C/C++->Tabs 注释选定代码:Ctrl+K+C 取消注释选定的代码:

vs code代码对齐快捷键

vscode缩进快捷键: 选中文本: Ctrl  +  [      和   Ctrl  +  ]     实现文本的向左移动或者向右移动: vscode代码对齐快捷键: 选中文本: Shift  +  Alt  + F     实现代码的对齐: 原文地址:https://www.cnblogs.com/jxst441192/p/9876342.html

UVa 1593 Alignment of Code(字符串)

题意  按要求对齐代码 字符串流的应用 #include <bits/stdc++.h> using namespace std; const int N = 1005, M = 200; string s[N][M], line; int cw[M], cn[N]; int main() { int r = 0, c = 0; while(getline(cin, line)) { stringstream ss(line); while(ss >> s[r][c]) { if(

XAlign:用于代码对齐的Xcode插件

除下面的插件对齐,xcode自带有cmd+v,在没有复制或者剪切的情况下,直接按cmd+v会有着对齐参数标签冒号的作用. XAlign 是一个 Xcode 的实用插件,用于对齐规范代码.除了插件作者 qfish 提供的 3 种对齐格式,还可以自定义任意你想要的格式. 示例 qfish 分享的 3 张示例图( Gif ),如下: 1. 按首个 = 对齐 2. 按宏定义群组对齐 3. 按属性群组对齐 安装 1. 自动安装 $ curl github.so/XAlign/build/install.s

sublime text2 配置代码对齐快捷键

menu under Preferences → Key Bindings – User [{"keys": ["ctrl+shift+r"], "command": "reindent" , "args": {"single_line": false}}] 保存马上生效,并且不需要选中代码,可以直接用命令ctrl+shift+r就能对齐代码了

UVa 1593 - Alignment of Code

题目描述 : 输入若干行代码,按照要求格式输出,.各列单词尽量靠左,单词之间至少要一个空格. 思路 : 利用字符串数组找规律.  只要控制好边界其他的都很简单.  连测试用例都没有用,因为UVa网页老刷不出来.直接交代码QuickSubmit,只是担心会超时,但结果令人意外,竟然是AC.再来两道吧.      对了 我又不好意思的用了正则表达式. 代码 : <p>import java.util.*; import java.util.regex.Matcher; import java.ut

UVA 1593: Alignment of Code(模拟 Grade D)

题意: 格式化代码.每个单词对齐,至少隔开一个空格. 思路: 模拟.求出每个单词最大长度,然后按行输出. 代码: #include <cstdio> #include <cstdlib> #include <cstring> char words[1200][190][90]; int maxLen[190]; char tmp[200]; typedef char * pchar; int readStr(pchar &str, char *out) { in