| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
为什么TLE啊 搞不懂import java.io.*;
import java.util.*;
public class Test1002 {
private static BufferedReader stdIn =
new BufferedReader(new InputStreamReader(System.in));
private static PrintWriter stdOut =
new PrintWriter(System.out, true);
private static final int TEL_LENGTH = 7;
public static void main(String[] args)throws Exception{
int numberOfTel = 0;
numberOfTel = Integer.parseInt(stdIn.readLine());
String telNumber[] = new String[numberOfTel];
StringTokenizer telNumberTokenizer[] = new StringTokenizer[numberOfTel];
char telNumberArray[][] = new char[numberOfTel][TEL_LENGTH];
int sameTelNumberArray[] = new int[numberOfTel];
boolean yesOrNo = false;
for(int i=0;i<sameTelNumberArray.length;i++){
sameTelNumberArray[i] = 1;
}
for(int i=0;i<telNumber.length;i++){
telNumber[i] = stdIn.readLine();
telNumberTokenizer[i] = new StringTokenizer(telNumber[i],"-");
}
for(int i =0;i<telNumberTokenizer.length;i++){
String telNumberC = "";
while(telNumberTokenizer[i].hasMoreTokens()){
telNumberC += telNumberTokenizer[i].nextToken();
}
telNumber[i] = telNumberC;
}
for(int i=0;i<telNumberArray.length;i++){
telNumberArray[i] = telNumber[i].toCharArray();
}
//改字母为数字
for(int i=0;i<telNumberArray.length;i++){
for(int j=0;j<telNumberArray[i].length;j++)
switch(telNumberArray[i][j]){
case 'A':
case 'B':
case 'C':
telNumberArray[i][j] = '2';
break;
case 'D':
case 'E':
case 'F':
telNumberArray[i][j] = '3';
break;
case 'G':
case 'H':
case 'I':
telNumberArray[i][j] = '4';
break;
case 'J':
case 'K':
case 'L':
telNumberArray[i][j] = '5';
break;
case 'M':
case 'N':
case 'O':
telNumberArray[i][j] = '6';
break;
case 'P':
case 'R':
case 'S':
telNumberArray[i][j] = '7';
break;
case 'T':
case 'U':
case 'V':
telNumberArray[i][j] = '8';
break;
case 'W':
case 'X':
case 'Y':
telNumberArray[i][j] = '9';
break;
default:break;
}
}
//将号码改为新格式
for(int i=0;i<numberOfTel;i++){
telNumber[i] = new String(telNumberArray[i]);
}
//for(int i=0;i<telNumber.length;i++)System.out.println(telNumber[i]);
//排序 从小到大
/*for(int i=0;i<numberOfTel;i++){
for(int j=0;j<numberOfTel-i-1;j++)
if(Integer.parseInt(telNumber[j])>Integer.parseInt(telNumber[j+1])){
String s = telNumber[j+1];
telNumber[j+1] = telNumber[j];
telNumber[j] = s;
}
}*/
quickSort(telNumber, 0, numberOfTel-1);
//for(int i=0;i<telNumber.length;i++)System.out.println(telNumber[i]);
//计算相同号码个数
for(int i=0;i<telNumber.length-1;i++){
//System.out.println(telNumber[i]);
for(int j=i+1;j<telNumber.length;j++){
if( telNumber[i]!=null && telNumber[i].equals(telNumber[j]) ){
telNumber[j] = null;
sameTelNumberArray[i]++;
}
}
}
for(int i=0;i<telNumber.length;i++){
if(telNumber[i]!=null){
telNumberArray[i] = telNumber[i].toCharArray();
}
}
for(int i=0;i<sameTelNumberArray.length;i++){
if(sameTelNumberArray[i]>1)
yesOrNo = true;
break;
}
if(yesOrNo){
for(int i=0;i<telNumber.length;i++){
if(telNumber[i]!=null && sameTelNumberArray[i]!=1){
for(int j=0;j<TEL_LENGTH;j++){
if(telNumber[i]!=null && j<3 )
stdOut.print(telNumberArray[i][j]);
else if(telNumber[i]!=null && j==3)
stdOut.print("-"+telNumberArray[i][j]);
else if(telNumber[i]!=null && j>3 )
stdOut.print(telNumberArray[i][j]);
}
stdOut.println(" "+sameTelNumberArray[i]);
}
}
}
else
stdOut.println("No duplicates.");
}
public static void quickSort(String [] a, int low, int high){
int lo = low;
int hi = high;
//String key = a[low];
if(lo>hi)
return;
boolean transfer=true;
while (lo != hi) {
if (Integer.parseInt(a[lo]) >Integer.parseInt(a[hi])) {
// 交换数字
String temp = a[lo];
a[lo] = a[hi];
a[hi] = temp;
// 决定下标移动,还是上标移动
transfer = (transfer == true) ? false : true;
}
// 将指针向前或者向后移动
if(transfer)
hi--;
else
lo++;
// 显示每一次指针移动的数组数字的变化
/*for(int i = 0; i < a.length; ++i) {
System.out.print(a[i] + ",");
}
System.out.print(" (lo,hi) = " + "(" + lo + "," + hi + ")");
System.out.println("");*/
}
// 将数组分开两半,确定每个数字的正确位置
lo--;
hi++;
quickSort(a, low, lo);
quickSort(a, hi, high);
}
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator