国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

leetcode-854-K-Similar Strings

王笑朝 / 1403人閱讀

摘要:沒(méi)有發(fā)現(xiàn)字符串的遍歷,一種向前,一種向后。遞歸函數(shù),利用返回結(jié)果的話,返回結(jié)果是遞歸到最后,結(jié)束遍歷以后,得到的結(jié)果才有效。

題目本質(zhì):通過(guò)將字符串A的字母之間的連續(xù)交換位置,達(dá)到 兩個(gè)字符串之間完全相同的情況
解析:通過(guò)將不相等處的字母,發(fā)現(xiàn)之后找到想等的,然后進(jìn)行位置替換。如此反復(fù)。
   問(wèn)題在于慢,慢在于只要不相等,就會(huì)遍歷字符串之后所有的字符,大量重復(fù)的無(wú)意義的計(jì)算比較,所以將遍歷過(guò)的計(jì)算過(guò)的存在于memo字符串中間。

錯(cuò)誤:沒(méi)有找到效率低的問(wèn)題所在,在于比較過(guò)的無(wú)意義的比較。

   沒(méi)有發(fā)現(xiàn)字符串的遍歷,一種向前,一種向后。
   對(duì)付效率低,一種有效的方式就是緩存,將比較過(guò)的先儲(chǔ)存起來(lái)

應(yīng)用:緩存意識(shí),發(fā)現(xiàn)大量比較,可能有重復(fù),儲(chǔ)存。

   遞歸函數(shù),利用返回結(jié)果的話,返回結(jié)果是遞歸到最后,結(jié)束遍歷以后,得到的結(jié)果才有效。  
             
import sys
class Solution:
    def kSimilarity(self, A, B):
        memo=dict()
        self.ans=sys.maxsize
        def helper(a,b):
            if len(a)!=len(b):
                return 0
            elif a==b:
                return 0
            elif (a,b) in memo:
                print(a,b,memo[(a,b)])
                return memo[(a,b)]
            elif a[-1]==b[-1]:
                self.ans=min(self.ans,helper(a[:-1],b[:-1]))
            else:
                for i in range(0,len(a)-1):
                    # print(a,b)
                    if a[i]==b[-1]:
                        # print(a[:i],b[-1],a[i+1:])
                        a_new=a[:i]+a[-1]+a[i+1:-1]
                        # print(a_new,b[:-1])
                        self.ans=min(self.ans,1+helper(a_new,b[:-1]))
                        # self.ans=1+helper(a_new,b[:-1])
                        # break
                        # print(self.ans)
            memo[(a,b)]=self.ans
            return self.ans
        self.ans=helper(A,B)
        return self.ans

if __name__=="__main__":
    A = "aabc"
    B = "abca"
    A="abbcac"
    B="abcbca"
    A="abccaacceecdeea"
    B="bcaacceeccdeaae"
    A="fffeaacbdbdafcfbbafb"
    B="abcbdfafffefabdbbafc"
    # A="abfdfacbd b d a f cfbbafb"
    # B="abcbdfaff f e f a bdbbafc"
    # A="abccab"
    # B="abccab"
    st=Solution()
    # out=st.kSimilarity(A,B)
    out=st.kSimilarity(A,B)
    print(out)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/42347.html

相關(guān)文章

  • Java中ArrayList remove會(huì)遇到的坑

    摘要:前言平時(shí)最常用的莫過(guò)于和了,面試的時(shí)候也是問(wèn)答的常客。先不去管容量負(fù)載因子什么的,就是簡(jiǎn)單的使用也會(huì)遇到坑。元素經(jīng)常遇到的一個(gè)場(chǎng)景是遍歷然后找到合適條件的給刪除掉,比如刪除所有的偶數(shù)。文初的做法不報(bào)錯(cuò),但結(jié)果并不是我們想要的。 前言 平時(shí)最常用的莫過(guò)于ArrayList和HashMap了,面試的時(shí)候也是問(wèn)答的常客。先不去管容量、負(fù)載因子什么的,就是簡(jiǎn)單的使用也會(huì)遇到坑。 showImg...

    LiangJ 評(píng)論0 收藏0
  • ES6 Features系列:Template Strings & Tagged Templ

    摘要:由兩部分組成模板起始符,稱為沉音符反引號(hào),其內(nèi)容被識(shí)別為字符串模板。其實(shí)這是通過(guò)屬性操作中的結(jié)果,也就是說(shuō)屬性將對(duì)控制符進(jìn)行轉(zhuǎn)義從而實(shí)現(xiàn)按照普通字符輸出。的語(yǔ)法是緊跟在后面,兩者間不能有空格或制表符等。 1. Brief ES6(ECMAScript 6th edition)于2015年7月份發(fā)布,雖然各大瀏覽器仍未全面支持ES6,但我們可以在后端通過(guò)Node.js 0.12和io....

    MyFaith 評(píng)論0 收藏0
  • linux之strings命令

    摘要:命令是二進(jìn)制工具集的一員,用于打印文件中可打印字符串,命令在對(duì)象文件或二進(jìn)制文件中查找可打印的字符串。打印字符序列的偏移量原文鏈接微信公眾號(hào)入門小站 strings 命令是二進(jìn)制工具集 GNU Binutils 的一員,用于打印文件中可打印字符串,strings命令在對(duì)象文件或二進(jìn)制文件中查找可打印的字符串。字...

    番茄西紅柿 評(píng)論0 收藏2637
  • Stream API和Optional類學(xué)習(xí)筆記

    摘要:用于對(duì)流進(jìn)行排序。三最終操作用于迭代流中的每個(gè)元素,并執(zhí)行相應(yīng)的操作。類類也是的新特性,用于有效解決問(wèn)題。與的功能一樣,不過(guò)接受一個(gè)函數(shù)式接口來(lái)生成對(duì)象為空則拋出異常與使用類似與使用類似這是一種級(jí)聯(lián)的方式,能夠解決方式的嵌套問(wèn)題。 Stream API Stream API是Java8的新特性,通常用于對(duì)集合進(jìn)行一些操作,可以幫助開發(fā)者寫出更高效、整潔的代碼。 一、Stream流的創(chuàng)建...

    geekidentity 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<