Cracking the Coding Interview Q1.8

Assume you have a method isSubstring which checks if one word is a substring of another. Given two strings, s1 and s2, write code to check if s2 is a rotation of s1 using only one call to isSubstring ( i.e., “waterbottle” is a rotation of “erbottlewat”).

 

思路:s1连接s1构成新字符串,然后判断s2是否是s1s1的子串即可。

 

    public static boolean isRotation(String s1, String s2) {
        int len = s1.length();
        /* check that s1 and s2 are equal length and not empty */
        if (len == s2.length() && len > 0) { 
            /* concatenate s1 and s1 within new buffer */
            String s1s1 = s1 + s1;
            return isSubstring(s1s1, s2);
        }
        return false;
    }

 

posted @ 2014-07-07 23:07  jdflyfly  阅读(176)  评论(0编辑  收藏  举报