<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
    主站蜘蛛池模板: 日韩精品无码免费视频| 亚洲精品福利你懂| 国产免费MV大全视频网站| 国产成人精品免费直播| 亚洲精品无码成人| 日本成人在线免费观看 | 久久久久亚洲av无码专区导航| WWW国产成人免费观看视频| 亚洲国产综合精品一区在线播放| 日韩欧美亚洲中文乱码| 亚洲乱码国产一区三区| 国产免费久久精品丫丫| 国产AV无码专区亚洲Av| 日本黄色动图免费在线观看| 一区二区三区亚洲| 免费看韩国黄a片在线观看| 亚洲精品无码久久久久牙蜜区| 国产片免费在线观看| 亚美影视免费在线观看| 亚洲Av综合色区无码专区桃色| 84pao强力永久免费高清 | 亚洲va中文字幕无码久久不卡| 免费h视频在线观看| 亚洲自偷自拍另类图片二区| 最近免费中文字幕大全视频| 亚洲精品无码一区二区| 久久亚洲中文字幕精品一区四| 狠狠色香婷婷久久亚洲精品| 在线精品免费视频| 久久av免费天堂小草播放| 精品亚洲成a人片在线观看| 性色av无码免费一区二区三区| 色婷婷亚洲一区二区三区| 亚洲视频在线免费播放| 久久精品国产亚洲一区二区| 99热这里只有精品免费播放| 亚洲欧美成人一区二区三区| 亚洲中文字幕在线观看| 免费能直接在线观看黄的视频 | j8又粗又长又硬又爽免费视频| 亚洲成人在线电影|