1、題目:
題目描述 繼MIUI8推出手機分身功能之後,MIUI9計劃推出一個電話號碼分身的功能:首先將電話號碼中的每個數字加上8取個位,然後使用對應的大寫字母代替 ("ZERO", "ONE", "TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE"), 然後隨機打亂這些字母,所產生的字串即為電話號碼對應的分身。 輸入描述:
第一行是一個整數T(1 ≤ T ≤ 100)表示測試範例數;接下來T行,每行給定一個分身後的電話號碼的分身(長度在3到10000之間)。
輸出描述:
輸出T行,分別對應輸入中每行字串對應的分身前的最小電話號碼(允許前置0)。
樣本1
輸入
4EIGHTZEROTWOONEOHWETENRTEOOHEWTIEGTHENRTEO
輸出
02343450345
2、分析:通過分析各個單詞的每個字元,依次找出第一組,第二組...,每一組的每個單詞都能有一個字元和其他單詞不一樣,從而確定一個單詞的存在,然後刪除這個單詞,每刪除一次就對此單詞出現次數+1,表示這個單詞的出現次數,為後面輸出結果做鋪墊。
注意:找出各個組是有序的
3、code:已a
package schooloffer17;import java.util.Arrays;import java.util.Scanner;/** * @Author: cxh * @CreateTime: 17/12/2 10:01 * @ProjectName: JavaBaseTest * <電話號碼分身></> */public class PhoneNumDevide { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int n; n=Integer.valueOf(scanner.nextLine().trim());//n個測試案例 int[] record=new int[10]; for(int i=0;i<n;i++){ String str=scanner.nextLine().trim().toLowerCase(); Arrays.fill(record,0);//記錄各個數字出現次數 StringBuilder sb=new StringBuilder(str); //階段1 //two->4 while (sb.indexOf("w")!=-1){ sb.deleteCharAt(sb.indexOf("t")); sb.deleteCharAt(sb.indexOf("w")); sb.deleteCharAt(sb.indexOf("o")); record[4]++; } //six->8 while (sb.indexOf("x")!=-1){ sb.deleteCharAt(sb.indexOf("s")); sb.deleteCharAt(sb.indexOf("i")); sb.deleteCharAt(sb.indexOf("x")); record[8]++; } //eight->0 while (sb.indexOf("g")!=-1){ sb.deleteCharAt(sb.indexOf("e")); sb.deleteCharAt(sb.indexOf("i")); sb.deleteCharAt(sb.indexOf("g")); sb.deleteCharAt(sb.indexOf("h")); sb.deleteCharAt(sb.indexOf("t")); record[0]++; } //zero->2 while (sb.indexOf("z")!=-1){ sb.deleteCharAt(sb.indexOf("z")); sb.deleteCharAt(sb.indexOf("e")); sb.deleteCharAt(sb.indexOf("r")); sb.deleteCharAt(sb.indexOf("o")); record[2]++; } //階段2 //three->5 while (sb.indexOf("h")!=-1){ sb.deleteCharAt(sb.indexOf("t")); sb.deleteCharAt(sb.indexOf("h")); sb.deleteCharAt(sb.indexOf("r")); sb.deleteCharAt(sb.indexOf("e")); sb.deleteCharAt(sb.indexOf("e")); record[5]++; } //four->6 while (sb.indexOf("u")!=-1){ sb.deleteCharAt(sb.indexOf("f")); sb.deleteCharAt(sb.indexOf("o")); sb.deleteCharAt(sb.indexOf("u")); sb.deleteCharAt(sb.indexOf("r")); record[6]++; } //seven->9 while (sb.indexOf("s")!=-1){ sb.deleteCharAt(sb.indexOf("s")); sb.deleteCharAt(sb.indexOf("e")); sb.deleteCharAt(sb.indexOf("v")); sb.deleteCharAt(sb.indexOf("e")); sb.deleteCharAt(sb.indexOf("n")); record[9]++; } //階段3 //five->7 while (sb.indexOf("f")!=-1){ sb.deleteCharAt(sb.indexOf("f")); sb.deleteCharAt(sb.indexOf("i")); sb.deleteCharAt(sb.indexOf("v")); sb.deleteCharAt(sb.indexOf("e")); record[7]++; } //階段4 //nine->1 while (sb.indexOf("i")!=-1){ sb.deleteCharAt(sb.indexOf("n")); sb.deleteCharAt(sb.indexOf("i")); sb.deleteCharAt(sb.indexOf("n")); sb.deleteCharAt(sb.indexOf("e")); record[1]++; } //階段5 //one->3 while (sb.indexOf("e")!=-1){ sb.deleteCharAt(sb.indexOf("o")); sb.deleteCharAt(sb.indexOf("n")); sb.deleteCharAt(sb.indexOf("e")); record[3]++; } for(int j=0;j<10;j++){ for(int k=0;k<record[j];k++){ sb.append(j); } } System.out.println(sb.toString()); } }}