Python實(shí)現(xiàn)的破解字符串找茬游戲算法示例
本文實(shí)例講述了Python實(shí)現(xiàn)的破解字符串找茬游戲算法。分享給大家供大家參考,具體如下:
最近在一個(gè)QQ群里發(fā)現(xiàn)有那種機(jī)器人, 發(fā)出來字符串找茬游戲:
有點(diǎn)類似于:
沒沒沒沒沒沒沒沒沒沒沒沒沒沒沒沒沒沒
沒沒沒沒沒沒沒沒沒沒沒沒沒沒沒沒沒沒
沒沒沒沒沒役沒沒沒沒沒沒沒沒沒沒沒沒
沒沒沒沒沒沒沒沒役沒沒沒沒沒沒沒沒沒
沒沒沒沒沒沒沒沒沒沒沒沒沒沒沒沒沒沒
沒沒沒沒沒沒沒沒沒沒沒沒沒沒沒沒沒沒
玩法就是用戶發(fā)消息到群里:
#找茬
然后群里有個(gè)自動(dòng)聊天的機(jī)器人, 他接到這句話之后, 會(huì)將上面一大堆文字發(fā)到群里.
然后你可以發(fā)現(xiàn)里面有個(gè)"役", 這個(gè)時(shí)候, 你就發(fā)
#找茬[役]
這條消息到群里, 聊天機(jī)器人接收到你的消息后會(huì)說: 回答正確, 或者回答錯(cuò)誤等等.
有時(shí)候, 找這個(gè)字, 眼睛看花, 費(fèi)神, 我就用python寫了個(gè)腳本來處理這個(gè):
#!/usr/bin/env python
# -*- coding: utf-8 -*-
def char_diff(text):
text=text.replace('\n','').replace('\r','')
try:
text=text.decode('gb18030','ignore')
except:
try:
text=text.decode('utf-8','ignore')
except:
pass
d={}
for x in text:
d[x]=d.get(x,0)+1
lll= d.items()
lll.sort(key = lambda x: x[1])
return lll[0][0]
if __name__ == '__main__':
while 1:
text = raw_input("> ").decode('gb18030')
#print type(text)
if text in ['q','e','exit','quit','bye',u'退出']:
print 'Bye!'
break
print u'#找茬[%s] ' % char_diff(text)
原理很簡單, 就是統(tǒng)計(jì)字符個(gè)數(shù), 返回出現(xiàn)次數(shù)最少的那個(gè).
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
PyTorch里面的torch.nn.Parameter()詳解
今天小編就為大家分享一篇PyTorch里面的torch.nn.Parameter()詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01
python實(shí)現(xiàn)的二叉樹算法和kmp算法實(shí)例
最近重溫?cái)?shù)據(jù)結(jié)構(gòu),又用python,所以就用python重新寫了數(shù)據(jù)結(jié)構(gòu)的一些東西,以下是二叉樹的python寫法2014-04-04
Python selenium文件上傳下載功能代碼實(shí)例
這篇文章主要介紹了Python selenium文件上傳下載功能代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
python中json.dumps和json.dump區(qū)別
json.dumps將Python對象序列化為JSON字符串,json.dump直接將Python對象序列化寫入文件,本文就來介紹一下兩個(gè)的使用及區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下2024-12-12
如何不用安裝python就能在.NET里調(diào)用Python庫
這篇文章主要介紹了如何不用安裝python就能在.NET里調(diào)用Python庫,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
pyinstaller打包成無控制臺程序時(shí)運(yùn)行出錯(cuò)(與popen沖突的解決方法)
這篇文章主要介紹了pyinstaller打包成無控制臺程序時(shí)運(yùn)行出錯(cuò)(與popen沖突的解決方法),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
python輕松辦公將100個(gè)Excel中符合條件的數(shù)據(jù)匯總到1個(gè)Excel里
這篇文章主要為大家介紹了python輕松辦公將100個(gè)Excel中符合條件的數(shù)據(jù)匯總到1個(gè)Excel里示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03

