Open carloscn opened 1 year ago
static int32_t is_totate_string(const char *str_a, const char *str_b, bool *result)
{
int32_t ret = 0;
size_t a_len, b_len;
char *joint_str = NULL;
UTILS_CHECK_PTR(str_a);
UTILS_CHECK_PTR(str_b);
UTILS_CHECK_PTR(result);
UTILS_CHECK_LEN(a_len = strlen(str_a));
UTILS_CHECK_LEN(b_len = strlen(str_b));
joint_str = (char *)calloc(sizeof(char), a_len + a_len + 1);
UTILS_CHECK_PTR(joint_str);
strcat(joint_str, str_a);
strcat(joint_str, str_a);
*result = strstr(joint_str, str_b) != NULL;
finish:
UTILS_SAFE_FREE(joint_str);
return ret;
}
fn is_rotate_string(str_a:&String, str_b:&String) -> Result<bool, &'static str>
{
let mut ret:bool = false;
let mut joint_str:String = String::new();
if (0 == str_a.len()) ||
(0 == str_b.len()) {
return Err("len error!\n");
}
joint_str = format!("{}{}", *str_a, *str_a);
ret = joint_str.contains(str_b);
return Ok(ret);
}
问题描述
给定两个字符串, s 和 goal。如果在若干次旋转操作之后,s 能变成 goal ,那么返回 true 。
s 的 旋转操作 就是将 s 最左边的字符移动到最右边。
例如, 若 s = 'abcde',在旋转一次之后结果就是'bcdea' 。
示例 1:
输入: s = "abcde", goal = "cdeab" 输出: true 示例 2:
输入: s = "abcde", goal = "abced" 输出: false
提示:
1 <= s.length, goal.length <= 100 s 和 goal 由小写英文字母组成
来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/rotate-string