AOJ0501 Data Conversion

問題リンク Data Conversion

  • 解法

変換表はMapで作りました。
作る文字列の長さは最大で10^8近くなってStringを+で連結していくとまずTLEするでしょう。
StringBuilderを使えば高速です。

  • ソース
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

//Data Conversion
public class AOJ0501 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while(true){
			int n = sc.nextInt();
			if(n==0)break;
			Map<String, String> map = new HashMap<String, String>();
			while(n--!=0){
				map.put(sc.next(), sc.next());
			}
			int m = sc.nextInt();
			StringBuilder sb = new StringBuilder();
			while(m--!=0){
				String s = sc.next();
				if(map.containsKey(s))sb.append(map.get(s));
				else sb.append(s);
			}
			System.out.println(sb.toString());
		}
	}
}