首页 > 试题广场 >

旋变字符串

[编程题]旋变字符串
  • 热度指数:605 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
一个字符串可以分解为多种二叉树。如果str长度为1,认为不可分解;如果str长度为N(N>1),左半部分长度可以为1~N-1,右半部分为剩下的长度,然后你可以交换左右两部分。并且左右部分可以按照同样的逻辑,继续分解。每一个形成的字符串都可以是原字符串的旋变字符串。现在给你两个字符串str1和str2,判断str2是否为str1的旋变字符串。

输入描述:
输入包括两行,第一行一个字符串,代表str1,第二行一个字符串,代表str2


输出描述:
如果str2是str1的旋变字符串请输出“YES”,否则输出“NO”。
示例1

输入

abcd
dbac

输出

YES

说明

abcd->d...abc->d...ab...c->d...b...a...c
示例2

输入

IJz
JzI

输出

YES

说明

左边为l右边为Jz交换  变Jzl

备注:
时间复杂度,额外空间复杂度
头像 小YuHao
发表于 2022-05-05 00:56:37
import java.util.*; public class Main{     public static void main(String[] args){         Scanner in = new Scanner(Syst 展开全文