日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode: scramble-string

發(fā)布時間:2023/12/8 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode: scramble-string 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目描述


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、對于該問題,首先明白是在判斷字符串S2是否為S1的scrambled string,分情況討論的話,可以剛開始先看是否equals,這樣可以判斷長度為一的字符串;

2、接下來可以判斷字符串的長度是否相同;

3、之后判斷是否出現的字符相同,這里新建了一個長度為26的數組,要習慣這種思路,在前面的題中,找出現次數為n的數組中只是出現一次的數字也將32位的值分別存在了長度為32的數組里;

4、對遞歸的使用,分兩種,一種是沒有進行左右轉換,一種是進行了左右轉換;

public class Solution {public boolean isScramble(String s1, String s2) {if (s1.equals(s2))return true;int[] letters = new int[26];for (int i = 0; i < s1.length(); i++) {letters[s1.charAt(i) - 'a']++;letters[s2.charAt(i) - 'a']--;}for (int i = 0; i < 26; i++)if (letters[i] != 0)return false;for (int i = 1; i < s1.length(); i++) {//當前分割出沒有交換if (isScramble(s1.substring(0, i), s2.substring(0, i))&& isScramble(s1.substring(i), s2.substring(i))) //因為該函數是返回值為布爾型的,所以可以把其放在條件里面return true;//當前分割出交換---左右交換,這兩段可以合在一起,但是可讀性比較差if (isScramble(s1.substring(0, i), s2.substring(s2.length() - i))&& isScramble(s1.substring(i), s2.substring(0, s2.length() - i)))return true;}return false;

總結

以上是生活随笔為你收集整理的LeetCode: scramble-string的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。