<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
    主站蜘蛛池模板: 午夜老司机永久免费看片| 和老外3p爽粗大免费视频| 久久久久久夜精品精品免费啦| 亚洲精品无码AV中文字幕电影网站| 亚洲欧美精品午睡沙发| 亚洲精品动漫免费二区| 亚洲youjizz| 成人免费在线观看网站| 亚洲色欲啪啪久久WWW综合网| 国内精品免费视频自在线| 亚洲欧美第一成人网站7777 | 亚洲精品无码成人| 免费黄色app网站| 羞羞网站免费观看| 亚洲综合AV在线在线播放| 日本免费一区二区三区四区五六区| 亚洲av无码潮喷在线观看| 69pao强力打造免费高清| 亚洲另类视频在线观看| 日韩伦理片电影在线免费观看| 国产亚洲漂亮白嫩美女在线| 亚洲国产婷婷香蕉久久久久久| a一级爱做片免费| 亚洲综合自拍成人| 成人毛片免费观看视频| 国产免费牲交视频免费播放| 婷婷亚洲久悠悠色悠在线播放| 国产香蕉免费精品视频| 国产精品亚洲综合网站| 亚洲人成伊人成综合网久久久| 99久久免费中文字幕精品| 亚洲色大成网站www久久九| 亚洲A∨精品一区二区三区| 在线观看特色大片免费网站| 亚洲字幕在线观看| 亚洲A丁香五香天堂网| 三年片在线观看免费观看大全一 | 久久免费看黄a级毛片| 亚洲av无码一区二区三区在线播放 | 成人人观看的免费毛片| 猫咪免费观看人成网站在线|