find palindrome pairs
来源:互联网 发布:用java平衡服务器负载 编辑:程序博客网 时间:2024/06/05 08:10
given a list of words, find palindrome pairs
import java.util.*;public class GetPalindomPairs {public static void main(String[] args) { Set<String> dict1 = new HashSet<>(); dict1.add("a"); dict1.add("aa"); dict1.add("aaa"); for (List<String> list: getPairs(dict1)) { for (String str: list) { System.out.print(str+" "); } System.out.println("========"); } System.out.println("++++++++"); Set<String> dict2 = new HashSet<>(); dict2.add("abcd"); dict2.add("dcbaz"); for (List<String> list: getPairs(dict2)) { for (String str: list) { System.out.print(str+" "); } System.out.println("========"); }}public static List<List<String>> getPairs(Set<String> dict) {List<List<String>> result = new ArrayList<List<String>>();for (String s : dict) {for (int i = 0; i < s.length(); ++i) {String s1 = s.substring(0, i);String s2 = s.substring(i, s.length());if (isPal(s1)) {judge(result, s, s2, dict, false);}if (isPal(s2)) {judge(result, s, s1, dict, true);}}}return result;}public static void judge(List<List<String>> result, String s, String compare, Set<String> dict, boolean position) {char[] array = compare.toCharArray();for (int j = 0; j < compare.length() / 2; ++j) {char c = array[j];array[j] = array[compare.length() - j - 1];array[compare.length() - j - 1] = c;}String reverse = new String(array);if (dict.contains(reverse) && !reverse.equals(s)) {List<String> list = new ArrayList<String>();if (position) {list.add(s);list.add(reverse);} else {list.add(reverse);list.add(s);}result.add(list);}}public static boolean isPal(String s) {if (s.length() <= 1)return true;int left = 0;int right = s.length() - 1;while (left < right) {if (s.charAt(left) != s.charAt(right))return false;++left;--right;}return true;}}
0 0
- find palindrome pairs
- Palindrome Pairs
- Palindrome Pairs
- Palindrome Pairs
- D. Palindrome pairs
- [CodeForces159D]Palindrome pairs[dp]
- [LeetCode]Palindrome Pairs
- LeetCode: Palindrome Pairs
- LeetCode 336. Palindrome Pairs
- LeetCode 336. Palindrome Pairs
- LeetCode Palindrome Pairs
- leetcode 336. Palindrome Pairs
- 【leetcode】Palindrome Pairs
- [LeetCode] Palindrome Pairs
- LeetCode 336. Palindrome Pairs
- LeetCode No336. Palindrome Pairs
- leetcode.336. Palindrome Pairs
- leetcode_336 Palindrome Pairs
- UVa 377 - Cowculations
- 一探再探石子合并( NYOJ 737)
- 线程控制(一)
- 超详细!ActionBar 使用·详解 .
- epoll+线程池实现http文件下载
- find palindrome pairs
- 给输入框添加样式
- Java线程的基本操作
- 理解Linux文件权限
- SOCKET连接与TCP/IP连接
- getElementByName????????,????????,
- 51nod1080——两个数的平方和
- Error retrieving parent for item: No resource found that matches the given name 'Theme.AppCompat.Lig
- How Many Tables hd 1213