Java solution:

public static String f(String s) {
                int len = s.length();
                if (len < 3) return null;
                int[] buf = new int[256*256*256];
                int cur = (s.charAt(0) << 8) | s.charAt(1);
                ++buf[cur];
                for (int i = 0; i < len; ++i)
                        ++buf[cur = ((cur & ((1 << 16) - 1)) << 8) | 
s.charAt(i)];
                int bestCount = Integer.MIN_VALUE;
                int best = -1;
                for (int i = 0; i < 256*256*256; ++i)
                        if (bestCount < buf[i]) {
                                bestCount = buf[i];
                                best = i;
                        }

                return "" + (char)(best >> 16) + (char)(best >> 8 & 255) +
(char)(best & 255);
        }


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/algogeeks
-~----------~----~----~----~------~----~------~--~---

Reply via email to