Scramble String
生活随笔
收集整理的這篇文章主要介紹了
Scramble String
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目描述
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.java實(shí)現(xiàn)
import java.util.Arrays;public class Solution1 {public boolean isScramble(String s1, String s2) {if (s1.length() != s2.length())return false;if (s1.length() == 0 || s1.equals(s2)) {return true;}if (!isValid(s1, s2)) {return false;}for (int i = 1; i < s1.length(); i++) {String s11 = s1.substring(0, i);String s12 = s1.substring(i, s1.length());String s21 = s2.substring(0, i);String s22 = s2.substring(i, s2.length());String s23 = s2.substring(s2.length() - i, s2.length());String s24 = s2.substring(0, s2.length() - i);if (isScramble(s11, s21) && isScramble(s12, s22))return true;if (isScramble(s11, s23) && isScramble(s12, s24))//有可能交換,做交叉驗(yàn)證return true;}return false;}private boolean isValid(String s1, String s2) {char[] arr1 = s1.toCharArray();char[] arr2 = s2.toCharArray();Arrays.sort(arr1);Arrays.sort(arr2);if (!(new String(arr1)).equals(new String(arr2))) {return false;}return true;}public static void main(String[] args) {String s1 = "great";String s2 = "rwgat";if(new Solution1().isScramble(s1, s2)){System.out.println("yes");}}}參考:這里寫(xiě)鏈接內(nèi)容
總結(jié)
以上是生活随笔為你收集整理的Scramble String的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: pcie spec中scramble的算
- 下一篇: [通信原理]擾碼(Scramble)與解