最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實現(xiàn)求解括號匹配問題的方法

 更新時間:2018年04月17日 08:47:41   作者:Together_CZ  
這篇文章主要介紹了Python實現(xiàn)求解括號匹配問題的方法,涉及Python基于棧的字符串遍歷、判斷、運算解決括號匹配相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了Python實現(xiàn)求解括號匹配問題的方法。分享給大家供大家參考,具體如下:

這個在本科學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的時候已經(jīng)接觸很多了,主流的思想是借助棧的壓入、彈出來進(jìn)行匹配,至于python的話可以使用列表來完成這個操作,因為列表的append方法相當(dāng)于棧的push方法,列表的pop方法相當(dāng)于棧的pop方法。

主要的思路:

首先設(shè)置兩個列表分別存放的是各種括號的開括號和閉括號,然后遍歷給定的字符串,分如下幾種情況:

1.字符串首字符出現(xiàn)在閉括號列表中,直接結(jié)束,輸出錯誤

2.字符串長度不為偶數(shù),直接結(jié)束,輸出錯誤

3.對原始字符串列表化去重,如果去重后的列表長度不為偶數(shù)直接結(jié)束,輸出錯誤

4.遍歷字符串,將屬于開括號集合的括號加入到列表中,當(dāng)遇上一個閉括號的時候計算該閉括號在閉括號列表中的索引與當(dāng)前列表最后一個開括號在開括號列表中的索引是否一致,一致則繼續(xù),否則直接結(jié)束,輸出錯誤

主要是在長度很大的時候可以盡快判斷一些比較明顯的錯誤的模式,節(jié)省時間,按照這個簡單的思想,下面是具體的實現(xiàn):

#!usr/bin/env python
#encoding:utf-8
'''''
__Author__:沂水寒城
功能:括號匹配的相關(guān)問題
'''
def bracket_mathch(one_str):
 '''''
 括號匹配
 '''
 tmp_list=[]
 open_bracket_list=['(','[','{','<','《']
 close_bracket_list=[')',']','}','>','》']
 one_str_list=list(one_str)
 length=len(one_str_list)
 set_list=list(set(one_str_list))
 num_list=[one_str_list.count(one) for one in set_list]
 if one_str[0] in close_bracket_list:
  return False
 elif length%2!=0:
  return False
 elif len(set_list)%2!=0:
  return False
 else:
  for i in range(length):
   if one_str[i] in open_bracket_list:
    tmp_list.append(one_str[i])
   elif one_str[i] in close_bracket_list:
    if close_bracket_list.index(one_str[i])==open_bracket_list.index(tmp_list[-1]):
     tmp_list.pop()
    else:
     return False
     break
 return True
if __name__ == '__main__':
 one_str_list=['({})','({[<《》>]})','[(]){}','{{{{{{','([{}])','}{[()]']
 for one_str in one_str_list:
  if bracket_mathch(one_str):
   print one_str, '正確'
  else:
   print one_str, '錯誤'
 tmp='{}[{()()[]<{{[[[[(())()()(){}[]{}[]()<>]]]]}}>}]'
 print bracket_mathch(tmp)

結(jié)果如下:

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

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

相關(guān)文章

  • 11個Python的循環(huán)技巧分享

    11個Python的循環(huán)技巧分享

    當(dāng)我們處理數(shù)據(jù)時,有時候需要創(chuàng)建多個列表以存儲不同類型或不同條件下的數(shù)據(jù),在Python中,我們可以利用循環(huán)來快速、高效地創(chuàng)建這些列表,本文將介紹如何使用循環(huán)在Python中創(chuàng)建多個列表,需要的可以參考下
    2024-04-04
  • 關(guān)于Python中的if __name__ == __main__詳情

    關(guān)于Python中的if __name__ == __main__詳情

    在學(xué)習(xí)Python的過程中發(fā)現(xiàn)即使把if __name__ == ‘__main__’ 去掉,程序還是照樣運行。很多小伙伴只知道是這么用的,也沒有深究具體的作用。這篇文字就來介紹一下Python中的if __name__ == ‘__main__’的作用,需要的朋友參考下文
    2021-09-09
  • Python修改文件往指定行插入內(nèi)容的實例

    Python修改文件往指定行插入內(nèi)容的實例

    今天小編就為大家分享一篇Python修改文件往指定行插入內(nèi)容的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 淺析python中的二元嵌套列表分組

    淺析python中的二元嵌套列表分組

    這篇文章主要來和大家一起討論一下Python中的二元嵌套列表,并將每個嵌套列表元素相對于其其他索引元素進(jìn)行分組,感興趣的小伙伴可以學(xué)習(xí)一下
    2023-09-09
  • pytorch實現(xiàn)seq2seq時對loss進(jìn)行mask的方式

    pytorch實現(xiàn)seq2seq時對loss進(jìn)行mask的方式

    今天小編就為大家分享一篇pytorch實現(xiàn)seq2seq時對loss進(jìn)行mask的方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • 淺析Django 接收所有文件,前端展示文件(包括視頻,文件,圖片)ajax請求

    淺析Django 接收所有文件,前端展示文件(包括視頻,文件,圖片)ajax請求

    這篇文章主要介紹了Django 接收所有文件,前端展示文件(包括視頻,文件,圖片)ajax請求,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2020-03-03
  • python中的空值判斷和空字符串判斷方式

    python中的空值判斷和空字符串判斷方式

    這篇文章主要介紹了python中的空值判斷和空字符串判斷方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Python實現(xiàn)批量更換指定目錄下文件擴展名的方法

    Python實現(xiàn)批量更換指定目錄下文件擴展名的方法

    這篇文章主要介紹了Python實現(xiàn)批量更換指定目錄下文件擴展名的方法,結(jié)合完整實例分析了Python批量修改文件擴展名的技巧,并對比分析了shell命令及scandir的兼容性代碼,需要的朋友可以參考下
    2016-09-09
  • 如何使用Python一鍵修改上萬個文件名

    如何使用Python一鍵修改上萬個文件名

    各位有沒有遇到過需要批量整理多層文件夾結(jié)構(gòu)里各種類型(docx、excel、ppt)的文件材料的時候,下面這篇文章主要給大家介紹了關(guān)于如何使用Python一鍵修改上萬個文件名的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • numpy.std() 計算矩陣標(biāo)準(zhǔn)差的方法

    numpy.std() 計算矩陣標(biāo)準(zhǔn)差的方法

    今天小編就為大家分享一篇numpy.std() 計算矩陣標(biāo)準(zhǔn)差的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07

最新評論

舒兰市| 磴口县| 宣城市| 隆德县| 枞阳县| 漠河县| 新野县| 都匀市| 元江| 萨嘎县| 遂宁市| 博白县| 枞阳县| 武冈市| 兴城市| 贡觉县| 玉山县| 富平县| 胶州市| 若尔盖县| 衡阳市| 凌海市| 溆浦县| 札达县| 松原市| 宜丰县| 青川县| 同心县| 武清区| 厦门市| 信阳市| 广东省| 永德县| 堆龙德庆县| 谢通门县| 泗洪县| 盐边县| 资源县| 革吉县| 清涧县| 巩留县|