当前位置: 代码迷 >> Java相关 >> 今天机试的两道题,字符串和链表解决方案
  详细解决方案

今天机试的两道题,字符串和链表解决方案

热度:8066   发布时间:2013-02-25 21:47:23.0
今天机试的两道题,字符串和链表
1、求字符串子串出现的次数
String compareTo(String str1, String str2)
如str1="abaacabdcabd" ,str2="ab" 则返回"3"。
2、去掉单链表中的重复的节点,然后将链表逆置。
如2,4,5,4,3,7,2,3,9,3
去掉重复节点后5,7,9
逆置之后
结果为9,7,5

各路大神,如何实现??

------解决方案--------------------------------------------------------
1、
Java code
String aa = "abaacabdcabd";            String[] bb = aa.split("ab");            int count = bb.length-1;            System.out.println(count);
------解决方案--------------------------------------------------------
探讨

引用:

1、Java code
String aa = "abaacabdcabd";
String[] bb = aa.split("ab");
int count = bb.length-1;
System.out.println(count);


2、Java code
LinkedList<Integer> lis……
……

------解决方案--------------------------------------------------------
String aa = "aaaaaaab";
String bb = "aa";
------解决方案--------------------------------------------------------
Java code
/**     * 链表去重及倒置     */    public static LinkedList<Integer> offer(LinkedList<Integer> e) {        Map<Integer, Integer> map = new HashMap<Integer, Integer>();        LinkedList<Integer> list = new LinkedList<Integer>();        Integer i;        for (Integer r : e) {            if (map.containsKey(r))                map.put(r, map.get(r) + 1);            else                map.put(r, 1);        }        for (Integer j : map.keySet()) {            if (map.get(j) == 1)                list.add(j);        }        Collections.reverse(list);        return list;    }
  相关解决方案