<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 閱讀(219) 評論(0)  編輯  收藏 所屬分類: Leetcode
    主站蜘蛛池模板: 亚洲精品午夜视频| 一级毛片免费观看| 中文精品人人永久免费| 在线观看免费成人| 久久亚洲中文字幕精品一区四| 亚洲av一本岛在线播放| 久久国产精品成人免费| 亚洲精品福利你懂| h在线观看视频免费网站| 亚洲国产精品无码久久九九大片 | 30岁的女人韩剧免费观看| 亚洲熟妇久久精品| 免费福利视频导航| selaoban在线视频免费精品| 四虎1515hm免费国产| 精品四虎免费观看国产高清午夜| 国产亚洲精品国产| 免费的一级片网站| 99视频免费播放| xvideos永久免费入口| 精品亚洲AV无码一区二区| 成年女人免费v片| 99精品免费观看| 亚洲一区二区三区四区视频| 免费一本色道久久一区| 一个人免费视频观看在线www| 亚洲国产精品国自产电影| 精品无码国产污污污免费网站 | 亚洲av无一区二区三区| 亚洲成在人天堂在线| 青青青国产色视频在线观看国产亚洲欧洲国产综合 | 亚洲hairy多毛pics大全| 亚洲天堂男人天堂| 成人毛片18女人毛片免费96| 亚洲av永久无码精品网址| 亚洲国产精品成人| 午夜dj在线观看免费视频| jzzjzz免费观看大片免费| 亚洲熟妇成人精品一区| 亚洲美女视频一区二区三区| 亚洲午夜国产精品无码老牛影视|