字符串的好题。

题干解释的很复杂。一下让人不知所措了。

这道题究竟是什么意思呢?终于的结果是把一个字符串中字母的顺序打乱了,让你推断一个字符串能不能由还有一个字符串打乱得到。那打乱这个过程是怎么做的呢,非常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;
}
};

最新文章

  1. 转载(sublime text 2 调试python时结果空白)
  2. 微信Auth2.0授权的时候出现两次回调
  3. Sql日期时间格式转换
  4. Jquery每行最后一个LI边距设为0
  5. jsoncpp封装和解析字符串、数字、布尔值和数组
  6. sql server中NULL导入decimal字段时报错
  7. strlen源码剖析
  8. tomcat安装和基本配置
  9. 【css2、css3】css改变select选择框的样式
  10. Intersect交集
  11. 利用pyinstaller将python脚本打包发布
  12. 高质量JAVA代码编写规范
  13. vi/vim操作
  14. 安装.NET Core遇到的错误
  15. 对mysql性能影响的几个重要参数---高性能(七)
  16. C# 一些代码小结--串口操作
  17. windows:nginx配置http、https反向代理
  18. Linux学习笔记:rm删除文件和文件夹
  19. SeaJS简介一:由来,特点以及优势
  20. android(十)smali

热门文章

  1. 由老同事学习SAP所想到的
  2. taglist安装
  3. zzulioj--1776--和尚特烦恼2——第几个素数(技巧模拟)
  4. 上传golang 版本SDK
  5. POJ 1144 Network【割顶】
  6. 文本域内容在div中带换行显示
  7. [POI2011]MET-Meteors 整体二分_树状数组_卡常
  8. Spring EL表达式和资源调用
  9. IDEA使用技巧汇总
  10. Qt编译OpenGL程序遇到的问题