日期:2014-05-20  浏览次数:20721 次

今天机试的两道题,字符串和链表
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;
    }