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

Python實(shí)現(xiàn)求解括號(hào)匹配問(wèn)題的方法

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

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

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

主要的思路:

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

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

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

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

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

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

#!usr/bin/env python
#encoding:utf-8
'''''
__Author__:沂水寒城
功能:括號(hào)匹配的相關(guān)問(wèn)題
'''
def bracket_mathch(one_str):
 '''''
 括號(hào)匹配
 '''
 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, '錯(cuò)誤'
 tmp='{}[{()()[]<{{[[[[(())()()(){}[]{}[]()<>]]]]}}>}]'
 print bracket_mathch(tmp)

結(jié)果如下:

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

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

相關(guān)文章

  • Python實(shí)現(xiàn)Word表格轉(zhuǎn)成Excel表格的示例代碼

    Python實(shí)現(xiàn)Word表格轉(zhuǎn)成Excel表格的示例代碼

    這篇文章主要介紹了Python實(shí)現(xiàn)Word表格轉(zhuǎn)成Excel表格的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • python編寫(xiě)的最短路徑算法

    python編寫(xiě)的最短路徑算法

    本文給大家分享的是python 無(wú)向圖最短路徑算法:請(qǐng)各位大大指教,繼續(xù)改進(jìn)。(修改了中文字符串,使py2exe中文沒(méi)煩惱),需要的朋友可以參考下
    2015-03-03
  • 關(guān)于生產(chǎn)消費(fèi)者模型中task_done()的具體作用

    關(guān)于生產(chǎn)消費(fèi)者模型中task_done()的具體作用

    這篇文章主要介紹了關(guān)于生產(chǎn)消費(fèi)者模型中task_done()的具體作用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Python生成隨機(jī)數(shù)的方法

    Python生成隨機(jī)數(shù)的方法

    這篇文章主要介紹了Python生成隨機(jī)數(shù)的方法,有需要的朋友可以參考一下
    2014-01-01
  • pycharm不能運(yùn)行.py文件的解決方法

    pycharm不能運(yùn)行.py文件的解決方法

    今天小編就為大家分享一篇pycharm不能運(yùn)行.py文件的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • Python 識(shí)別12306圖片驗(yàn)證碼物品的實(shí)現(xiàn)示例

    Python 識(shí)別12306圖片驗(yàn)證碼物品的實(shí)現(xiàn)示例

    這篇文章主要介紹了Python 識(shí)別12306圖片驗(yàn)證碼物品的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • Python爬取豆瓣視頻信息代碼實(shí)例

    Python爬取豆瓣視頻信息代碼實(shí)例

    這篇文章主要介紹了Python爬取豆瓣視頻信息代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Python中的二維數(shù)組實(shí)例(list與numpy.array)

    Python中的二維數(shù)組實(shí)例(list與numpy.array)

    下面小編就為大家分享一篇Python中的二維數(shù)組實(shí)例(list與numpy.array),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • python函數(shù)與方法的區(qū)別總結(jié)

    python函數(shù)與方法的區(qū)別總結(jié)

    在本篇文章里小編給大家整理了關(guān)于python函數(shù)與方法的區(qū)別的相關(guān)知識(shí)點(diǎn)代碼內(nèi)容,需要的朋友們學(xué)習(xí)下。
    2019-06-06
  • python 繪圖模塊matplotlib的使用簡(jiǎn)介

    python 繪圖模塊matplotlib的使用簡(jiǎn)介

    這篇文章主要介紹了python 繪圖模塊matplotlib的使用簡(jiǎn)介,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03

最新評(píng)論