UVa 1593 - Alignment of Code

本文介绍了一种使用Java编程解决输出特定格式代码的方法,包括字符串数组的应用、边界控制和正则表达式的使用,旨在将多行代码按指定格式输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

思路 : 利用字符串数组找规律。  只要控制好边界其他的都很简单。  连测试用例都没有用,因为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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值