leetcode第一刷_Scramble String
2024-10-01 18:16:41
字符串的好题。
题干解释的很复杂。一下让人不知所措了。
这道题究竟是什么意思呢?终于的结果是把一个字符串中字母的顺序打乱了,让你推断一个字符串能不能由还有一个字符串打乱得到。那打乱这个过程是怎么做的呢,非常easy。给你一个字符串,你必须先找一个点把它砍成两半,你能够通过交换这两半的顺序来打乱源字符串的顺序,也就是在两半中的字符与还有一半中全部字符的相对顺序是统一的。对于每一半。都能够反复上面的过程。
那想一下,怎么知道打断的那个点在哪呢?穷举。怎么知道打断之后有没有做交换操作呢?两种情况递归。有一条走的通就能够了。还有个问题。两个字符串中包括的字符一定是全然一样的,如何确定这一点呢?最暴力的方式。新开两个字符串,排序,推断这两个新的相不相等。
class Solution {
public:
bool isScramble(string s1, string s2) {
if(s1 == "" && s2 == "")
return true;
if(s1.length() != s2.length())
return false;
if(s1 == s2)
return true;
string s11(s1), s22(s2);
sort(s11.begin(), s11.end()); sort(s22.begin(), s22.end());
if(s11 != s22)
return false;
for(int i=1;i<s1.length();i++){
if(isScramble(s1.substr(0, i), s2.substr(0, i))&&isScramble(s1.substr(i, s1.length()-i), s2.substr(i, s2.length()-i)))
return true;
else if(isScramble(s1.substr(0, i), s2.substr(s2.length()-i, i))&&isScramble(s1.substr(i, s1.length()-i), s2.substr(0, s2.length()-i)))
return true;
}
return false;
}
};
最新文章
- 转载(sublime text 2 调试python时结果空白)
- 微信Auth2.0授权的时候出现两次回调
- Sql日期时间格式转换
- Jquery每行最后一个LI边距设为0
- jsoncpp封装和解析字符串、数字、布尔值和数组
- sql server中NULL导入decimal字段时报错
- strlen源码剖析
- tomcat安装和基本配置
- 【css2、css3】css改变select选择框的样式
- Intersect交集
- 利用pyinstaller将python脚本打包发布
- 高质量JAVA代码编写规范
- vi/vim操作
- 安装.NET Core遇到的错误
- 对mysql性能影响的几个重要参数---高性能(七)
- C# 一些代码小结--串口操作
- windows:nginx配置http、https反向代理
- Linux学习笔记:rm删除文件和文件夹
- SeaJS简介一:由来,特点以及优势
- android(十)smali