<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    IT技術小屋

    秋風秋雨,皆入我心

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      38 隨筆 :: 1 文章 :: 19 評論 :: 0 Trackbacks
    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.

     1 public class ScrambleString {
     2     public boolean isScramble(String s1, String s2) {
     3         if (s1.length() != s2.length())
     4             return false;
     5         if (s1.equals(s2))
     6             return true;
     7 
     8         int[] A = new int[26];
     9         for (int i = 0; i < s1.length(); i++) {
    10             ++A[s1.charAt(i) - 'a'];
    11         }
    12 
    13         for (int j = 0; j < s2.length(); j++) {
    14             --A[s2.charAt(j) - 'a'];
    15         }
    16 
    17         for (int k = 0; k < 26; k++) {
    18             if (A[k] != 0)
    19                 return false;
    20         }
    21 
    22         for (int i = 1; i < s1.length(); i++) {
    23             boolean result = isScramble(s1.substring(0, i), s2.substring(0, i))
    24                     && isScramble(s1.substring(i), s2.substring(i));
    25             result = result
    26                     || (isScramble(s1.substring(0, i),
    27                             s2.substring(s2.length() - i, s2.length())) && isScramble(
    28                             s1.substring(i), s2.substring(0, s2.length() - i)));
    29             if (result)
    30                 return true;
    31         }
    32         return false;
    33     }
    34 }
    posted on 2014-01-05 12:33 Meng Lee 閱讀(224) 評論(0)  編輯  收藏 所屬分類: Leetcode
    主站蜘蛛池模板: 成人免费777777被爆出| 久久亚洲欧美国产精品| 成人无码a级毛片免费| 国产L精品国产亚洲区久久| 午夜不卡AV免费| 国产亚洲精品不卡在线| 国产黄色片在线免费观看| 人人狠狠综合久久亚洲88| 99re6在线视频精品免费| 亚洲日韩v无码中文字幕| 久久久久久免费一区二区三区| 欧美日韩国产免费一区二区三区| 亚洲无砖砖区免费| 成人免费无码视频在线网站| 亚洲综合成人婷婷五月网址| 日本黄色免费观看| 一区二区三区免费视频播放器| 黑人大战亚洲人精品一区 | 亚洲精品国产日韩无码AV永久免费网| 小说专区亚洲春色校园| 久久影院亚洲一区| 好紧我太爽了视频免费国产| 亚洲毛片在线免费观看| 看全色黄大色大片免费久久 | a毛看片免费观看视频| 亚洲好看的理论片电影| 成人免费毛片内射美女-百度| 亚洲久悠悠色悠在线播放| 伊在人亚洲香蕉精品区麻豆| 在线看片免费人成视频久网下载 | 最近中文字幕无免费| 国产亚洲色视频在线| 久久免费看少妇高潮V片特黄| 亚洲精品动漫在线| 日本人护士免费xxxx视频| 国产在线播放线91免费 | 日韩免费码中文在线观看| 久久精品亚洲视频| 美女被免费视频网站a国产| 中文字幕免费观看视频| 亚洲中字慕日产2020|