scramble-string
来源:互联网 发布:强制视频软件免费版 编辑:程序博客网 时间:2024/06/13 22:56
题目:
Given a string s1, we may represent it as a binary tree by partitioning it to two non-empty substrings recursively.
Below is one possible representation of s1 =”great”:
great
/ \
gr eat
/ \ / \
g r e at
/ \
a t
To scramble the string, we may choose any non-leaf node and swap its two children.
For example, if we choose the node”gr”and swap its two children, it produces a scrambled string”rgeat”.
rgeat
/ \
rg eat
/ \ / \
r g e at
/ \
a t
We say that”rgeat”is a scrambled string of”great”.
Similarly, if we continue to swap the children of nodes”eat”and”at”, it produces a scrambled string”rgtae”.
rgtae
/ \
rg tae
/ \ / \
r g ta e
/ \
t a
We say that”rgtae”is a scrambled string of”great”.
Given two strings s1 and s2 of the same length, determine if s2 is a scrambled string of s1.
程序:
class Solution {public: bool isScramble(string s1, string s2) { if(s1 == s2) return true; int c[26] = {0}; for(int i=0;i<s1.length();i++) { c[s1[i]-'a']++; c[s2[i]-'a']--; } for(int i=0;i<26;i++) if(c[i] != 0) return false; for(int i=1;i<s1.length();i++) { if(isScramble(s1.substr(0,i), s2.substr(0,i)) && isScramble(s1.substr(i), s2.substr(i))) return true; if(isScramble(s1.substr(0,i), s2.substr(s2.length()-i)) && isScramble(s1.substr(i), s2.substr(0,s2.length()-i))) return true; } return false; }};
点评:
递归
- Scramble String
- Scramble String
- Scramble String
- Scramble String
- Scramble String
- Scramble String
- Scramble String
- Scramble String
- Scramble String
- Scramble String
- Scramble String
- Scramble String
- Scramble String
- Scramble String
- Scramble String
- scramble string
- Scramble String
- Scramble String
- 杜教筛模板 莫比乌斯函数之和
- 网页性能优化
- 第二节 几种常用变量和运算符学习。
- java文本框
- List排序攻略
- scramble-string
- Lua热更新
- safari浏览器下,new Date('2016-07-18 14:58:32')提示:Invalid Date
- 堆排序
- Leetcode之Triangle 问题
- js和jquery的区别是什么?
- jQuery中cookie插件如何使用
- 阿里云ECS服务器初始化配置更新
- Android, iPhone、ios安卓 寻找技术做开发工具天气微小型游戏