今天机试的两道题,字符串和链表
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、
String aa = "abaacabdcabd"; String[] bb = aa.split("ab"); int count = bb.length-1; System.out.println(count);
[解决办法]
/** * 链表去重及倒置 */ 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; }