欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python求一批字符串的最長公共前綴算法示例

 更新時(shí)間:2019年03月02日 11:42:09   作者:lin-chang  
這篇文章主要介紹了Python求一批字符串的最長公共前綴算法,涉及Python針對字符串的遍歷、判斷、計(jì)算等相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Python求一批字符串的最長公共前綴算法。分享給大家供大家參考,具體如下:

思路一:這個(gè)題一拿到手,第一反應(yīng)就是以第一個(gè)字符串strs[0]為標(biāo)準(zhǔn),如果其他字符串的第一個(gè)字符和str[0]的第一個(gè)字符串相同,則再比較第二個(gè)字符串,以此類推直到出現(xiàn)不同為止。

def longestCommonPrefix(self, strs):
    """
    :type strs: List[str]
    :rtype: str
    """
    if not strs:
      return ""
    first_str = strs[0]
    other_strs = strs[1:]
    prefix = ""
    for i in first_str:
      prefix += i
      for s in other_strs:
        if not s.startswith(prefix):
          return prefix[:-1]
    return prefix

思路二:第二種方法,就是先比較前兩個(gè)字符串,求出他們的最長公共前綴,再用這個(gè)前綴去跟第三個(gè)字符串比較求出新的公共前綴,以此類推

class Solution(object):
  def longestCommonPrefix(self, strs):
    """
    :type strs: List[str]
    :rtype: str
    """
    if not strs:
       return ""
    if len(strs) == 1:
      return strs[0]
    prefix = strs[0]
    for i in range(len(strs)-1):
      if not prefix:
        return ""
      prefix = self.getCommonPrefix(prefix,strs[i+1])
    return prefix
  #先定義一個(gè)函數(shù)求出兩個(gè)字符串的最長公共前綴
  def getCommonPrefix(self,str1,str2):
    if not str1 or not str2:
      return ""
    prefix = ""
    for s in str1:
      prefix += s
      if not str2.startswith(prefix):
        return prefix[:-1]
    return prefix

不過測試了一下,第一種方法還要快一點(diǎn)。

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python列表(list)操作技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程

希望本文所述對大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 一文帶你探索Python生成器的深度用法

    一文帶你探索Python生成器的深度用法

    生成器是Python的一種核心特性,允許我們在請求新元素時(shí)再生成這些元素,而不是在開始時(shí)就生成所有元素,本文我們將從理論和實(shí)踐兩方面來探索Python生成器的深度用法,感興趣的可以了解一下
    2023-06-06
  • redis之django-redis的簡單緩存使用

    redis之django-redis的簡單緩存使用

    本篇文章介紹了redis之django-redis的簡單緩存使用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-06-06
  • Python Tornado批量上傳圖片并顯示功能

    Python Tornado批量上傳圖片并顯示功能

    Tornado龍卷風(fēng)是一個(gè)開源的網(wǎng)絡(luò)服務(wù)器框架,它是基于社交聚合網(wǎng)站FriendFeed的實(shí)時(shí)信息服務(wù)開發(fā)而來的。這篇文章主要介紹了Python Tornado批量上傳圖片并顯示,需要的朋友可以參考下
    2020-03-03
  • Python實(shí)現(xiàn)文件夾整理下載

    Python實(shí)現(xiàn)文件夾整理下載

    這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)文件夾整理下載,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以參考一下
    2023-09-09
  • python Airtest自動(dòng)化測試工具的的使用

    python Airtest自動(dòng)化測試工具的的使用

    本文主要介紹了python Airtest自動(dòng)化測試工具的的使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • python搭建虛擬環(huán)境的步驟詳解

    python搭建虛擬環(huán)境的步驟詳解

    相信每位python都知道,進(jìn)行不同的python項(xiàng)目開發(fā),有的時(shí)候會(huì)遇到這樣的情況:python 版本不一樣,使用的軟件包版本不一樣。這種問題最佳的解決辦法是為不同的項(xiàng)目搭建獨(dú)立的 python 環(huán)境。下面來一起看看吧。
    2016-09-09
  • python中關(guān)于py文件之間相互import的問題及解決方法

    python中關(guān)于py文件之間相互import的問題及解決方法

    這篇文章主要介紹了python中關(guān)于py文件之間相互import的問題,本文用一個(gè)例子演示下如何解決python中循環(huán)引用的問題,需要的朋友可以參考下
    2022-02-02
  • 用python寫的一個(gè)wordpress的采集程序

    用python寫的一個(gè)wordpress的采集程序

    在學(xué)習(xí)python的過程中,經(jīng)過不斷的嘗試及努力,終于完成了第一個(gè)像樣的python程序,雖然還有很多需要優(yōu)化的地方,但是目前基本上實(shí)現(xiàn)了我所要求的功能,需要的朋友可以參考下
    2016-02-02
  • python安裝模塊如何通過setup.py安裝(超簡單)

    python安裝模塊如何通過setup.py安裝(超簡單)

    這篇文章主要介紹了python安裝模塊如何通過setup.py安裝,安裝方法其實(shí)很簡單,感興趣的朋友跟隨腳本之家小編一起看看吧
    2018-05-05
  • opencv實(shí)現(xiàn)圖像校正

    opencv實(shí)現(xiàn)圖像校正

    這篇文章主要為大家詳細(xì)介紹了opencv實(shí)現(xiàn)圖像校正,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08

最新評論