爱悠闲 > 第13题 check rotation string

第13题 check rotation string

分类: 面试题  |  标签: string,buffer,面试  |  作者: stevemarbo 相关  |  发布日期 : 2012-11-05  |  热度 : 705°

此题来自cracking the coding interview,这本书是讲如何准备程序员面试的,非常不错

免积分下载:

链接地址




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


example:

"waterbottle" is a rotation of "erbottlewat"


此题方法很巧妙,把s1和自己拼接起来,形成一个字符串,这个字符串就会包含各种rotation的情况


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;
	}