ACM POJ 2503 (Babelfish)
2014-01-19 22:23
507 查看
题目链接 http://poj.org/problem?id=2503
程序一 字典树
程序二 HashMap类
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
Map<String, String> map = new HashMap<String, String>();
while (scn.hasNext()) {
String string = scn.nextLine();
if (0 == string.length()) {
break;
}
String[] language = string.split(" ", -1);
map.put(language[1], language[0]);
}
while (scn.hasNext()) {
String foreign = scn.nextLine();
if (map.containsKey(foreign)) {
System.out.println(map.get(foreign));
} else {
System.out.println("eh");
}
}
scn.close();
}
}
程序一 字典树
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scn = new Scanner(System.in); Trie trie = new Trie(); while (scn.hasNext()) { String string = scn.nextLine(); if (0 == string.length()) { break; } String[] language = string.split(" ", -1); trie.insert(language[0], language[1]); } while (scn.hasNext()) { System.out.println(trie.search(scn.nextLine())); } scn.close(); } } class Trie { private Node root; public Trie() { root = new Node(new Node[26], null); } public void insert(String english, String foreign) { Node current = root; for (int i = 0; i < foreign.length(); ++i) { if (null != current.getChildrenItem(foreign.charAt(i) - 'a')) { current = current.getChildrenItem(foreign.charAt(i) - 'a'); } else { Node newNode = new Node(new Node[26], null); current.setChildrenItem(foreign.charAt(i) - 'a', newNode); current = newNode; } } current.setEnglish(english); } public String search(String foreign) { Node current = root; for (int i = 0; i < foreign.length(); ++i) { if (null != current.getChildrenItem(foreign.charAt(i) - 'a')) { current = current.getChildrenItem(foreign.charAt(i) - 'a'); } else { return "eh"; } } return current.getEnglish(); } } class Node { private Node[] children; private String english; public Node(Node[] children, String english) { this.children = children; this.english = english; } public Node getChildrenItem(int i) { return children[i]; } public void setChildrenItem(int i, Node node) { children[i] = node; } public String getEnglish() { return english; } public void setEnglish(String english) { this.english = english; } }
程序二 HashMap类
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
Map<String, String> map = new HashMap<String, String>();
while (scn.hasNext()) {
String string = scn.nextLine();
if (0 == string.length()) {
break;
}
String[] language = string.split(" ", -1);
map.put(language[1], language[0]);
}
while (scn.hasNext()) {
String foreign = scn.nextLine();
if (map.containsKey(foreign)) {
System.out.println(map.get(foreign));
} else {
System.out.println("eh");
}
}
scn.close();
}
}
相关文章推荐
- [ACM] [算法基础] POJ 2503 在线翻译Babelfish(二分查找 字符串)
- poj_2503_Babelfish(字典树&&map)
- POJ 2503-Babelfish(map)
- POJ 2503 Babelfish
- poj2503——Babelfish
- POJ 2503 Babelfish
- POJ 2503 Babelfish
- POJ2503 - Babelfish - 字典树
- POJ 2503 Babelfish 字典树
- POJ 2503 Babelfish 字典树经典题 三种方法 (map,排序+二分,字典树)
- poj 2503 Babelfish
- poj 2503 Babelfish (map)
- POJ 2503 Babelfish(字典树水题)
- POJ-2503 Babelfish 二分+快排
- POJ 2503 Babelfish[字典树]
- poj 2503 Babelfish(字典树或STL水题) 解题报告(百炼2804)
- Babelfish(POJ--2503
- poj 2503 Babelfish
- poj 2503 Babelfish(字典树)
- poj 2503 Babelfish(trie树)