java笔试题5

来源:互联网 发布:java threadlocal 使用 编辑:程序博客网 时间:2024/05/14 06:33

题目:输出字典中具有相同字符的单词组合,如stop和post在同一个组合里。

自己写的代码:

package com.li.test.classes;/* * 输出字典中具有相同字符的单词组合,如stop,post; */import java.util.HashMap;import java.util.Stack;public class Stringcompare {public HashMap<String, Stack> stringCompare(String[] strarray) {long start = System.nanoTime();HashMap<String, Stack> stringMap = new HashMap();for (int i = 0; i < strarray.length; i++) {Stack stack = new Stack();String str1 = strarray[i];if (strarray[i] == "") {continue;}stack.push(str1);stringMap.put(str1, stack);for (int j = i + 1; j < strarray.length; j++) {String str2 = strarray[j];if (!(str1.length() == str2.length())) {continue;}else {char[] chararray1 = str1.toCharArray();char[] chararray2 = str2.toCharArray();if (compare(chararray1, chararray2)) {strarray[j] = "";stack.push(str2);}}}}System.out.println(System.nanoTime() - start);return stringMap;}public boolean compare(char[] char1, char[] char2) {if (!(char1.length == char2.length)) {return false;}else {int length = char1.length;for (int x = 0; x < length; x++) {for (int y = 0; y < length; y++) {if (char1[x] == char2[y]) {char1[x] = char2[y] = 0;break;}else {continue;}}if (char1[x] != 0) {return false;}}}return true;}/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubString[] dictionary = { "aabb", "bbaa", "acbd", "abcd", "efrt", "frec", "zddffgg", "werr", "sdawq", "cccvv", "rrew", "sdasda", "acdef", "abcdef","axgh", "agxf" };Stringcompare compare = new Stringcompare();System.out.println(compare.stringCompare(dictionary));}}
运行结果:

241388
{zddffgg=[zddffgg], cccvv=[cccvv], acbd=[acbd, abcd], agxf=[agxf], sdawq=[sdawq], acdef=[acdef], frec=[frec], aabb=[aabb, bbaa], axgh=[axgh], abcdef=[abcdef], efrt=[efrt], werr=[werr, rrew], sdasda=[sdasda]}


0 0
原创粉丝点击