码迷,mamicode.com
首页 > 其他好文 > 详细

UVa 1593 - Alignment of Code

时间:2014-12-26 20:23:44      阅读:281      评论:0      收藏:0      [点我收藏+]

标签:

题目描述 : 输入若干行代码,按照要求格式输出,。各列单词尽量靠左,单词之间至少要一个空格。

思路 : 利用字符串数组找规律。  只要控制好边界其他的都很简单。  连测试用例都没有用,因为UVa网页老刷不出来。直接交代码QuickSubmit,只是担心会超时,但结果令人意外,竟然是AC。再来两道吧。      对了 我又不好意思的用了正则表达式。

代码 :

<p>import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;</p><p>public class Main1593 {</p><p> public static void main(String[] args) {
  Scanner scan = new Scanner(System.in);
  Pattern p = Pattern.compile("<a target=_blank href="file://\\S">\\S</a>+");
  String[][] str = new String[1005][1000];
  int rows = 0;
  int[] rowcnt = new int[1000];
  Arrays.fill(rowcnt, 0);
  while(scan.hasNextLine()) {
   String line = scan.nextLine();
   Matcher m = p.matcher(line);
   int cols = 0;
   while(m.find()) {
    rowcnt[rows] ++;
    str[rows][cols++] = m.group();
   }
   rows ++;
  }
  //System.out.println(rows);
  int[] maxlen = new int[850];
  Arrays.fill(maxlen, 0);
  for(int i=0; i<rows; i++) {
   for(int j=0; j<rowcnt[i]; j++) {
    maxlen[j] = max(maxlen[j], str[i][j].length());
   }
  }
  for(int i=0; i<rows; i++) {
   for(int j=0; j<rowcnt[i]; j++) {
    System.out.print(str[i][j]);
    if(j < rowcnt[i]-1)
    for(int k=0; k<=maxlen[j]-str[i][j].length(); k++) 
     System.out.print(" ");
   }
   System.out.println();
  }
 }
 public static int max(int a, int b) {
  if(a >= b)
   return a;
  else
   return b;
 }
}
</p>

UVa 1593 - Alignment of Code

标签:

原文地址:http://blog.csdn.net/wxisme/article/details/42175569

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!