package cn.edu.hust.hydra;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class Hydra {
public static void main(String[] args){
String hydra = "";
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
try{
hydra = stdin.readLine();
}catch(Exception ex){
ex.printStackTrace();
}
List<Long> timeList = new ArrayList<Long>();
long sumTime = 0l;
int numbers = 10;
for(int index=0;index<numbers;index++){
long temp = new Hydra().tempMethod(hydra);
timeList.add(temp);
//System.out.println("temp= "+temp);
sumTime+=temp;
}
//System.out.println("sumTime= "+sumTime);
double average = (double)sumTime/numbers;
System.out.println("you will use "+average+" ms to kill hydra!");
}
public long tempMethod(String hydra){
Date current = new Date();
long startTime = current.getTime();
killHydra(hydra);
current = new Date();
long stopTime = current.getTime();
long elapsedTime = stopTime - startTime;
return elapsedTime;
}
public void killHydra(String hydra){
List<String> list = new ArrayList<String>();
list.add(hydra);//the first hydra
while(list!=null&&list.size()>=1){
//find the position of min string
//int position = getPositionOfMin(list);
int position = getPositionOfMax(list);
String temp = list.get(position);
if(temp.length()>1){
temp = temp.substring(1, temp.length());
list.add(temp);
list.add(temp);
}
//remove the hydra
list.remove(position);
}
}
public int getPositionOfMin(List<String> list){
int index = 0;
String minString = "";
if(list!=null){
if(list.size()>1){
minString = list.get(0);
for(int i=1;i<list.size();i++){
String tempString = list.get(i);
if(tempString.length()<minString.length()){
minString = tempString;
index = i;
}
}
}
}else{
return -1;
}
return index;
}
public int getPositionOfMax(List<String> list){
int index = 0;
String maxString = "";
if(list!=null){
if(list.size()>1){
maxString = list.get(0);
for(int i=1;i<list.size();i++){
String tempString = list.get(i);
if(tempString.length()>maxString.length()){
maxString = tempString;
index = i;
}
}
}
}else{
return -1;
}
return index;
}
}
数据结构与算法分析P241T4
最新推荐文章于 2024-10-04 18:59:43 发布