python實現兩字串對映詳解
導讀 | 這篇文章主要介紹了python實現兩字串對映方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教 |
python兩字串對映
題目:
pattern = "abba",s="dog cat cat dog"---->True
pattern = "abba",s="dog cat cat fish"----->False
class Solution: def is_pattern_matched(self, pattern:str,s: str) -> bool: pattern = list(''.join(pattern)) s = s.split(" ") a = {} for i in range(len(pattern)): a.update({pattern[i]:s[i]})#update() 方法用於修改/更新當前集合/字典,可以新增新的元素或集合到當前集合中,如果新增的元素在集合中已存在,則該元素只會出現一次,重複的會忽略。 # a = zip(pattern,s) # a = dict(a) for j in range(len(pattern)): if s[j] != a[pattern[j]]: return False else: return True pattern = "abba" s = "dog cat cat dog" S = Solution() result = S.is_pattern_matched(pattern,s) print(result)
python字元對映表和字元替換
python中有一個內建函式maketrans()可以對兩個字串進行字元對映,建立出對映表。
結構如下:
str.maketrans(intab,outtab)
當使用該函式時,將會把intab中的字串對out字串中的字元進行一一對應。
而使用translate()函式則可以利用對映表字元對指定字串的字元進行替換。
結構如下:
str.translate(table)
示例:
str1="abcdefghijklmnopqrstuvwxyz" str2="qwertyuiopasdfghjklzxcvbnm" table=str.maketrans(str1,str2) str="sword art online" print(str.translate(table))#==>lvgkr qkz gfsoft
上面的例子使用了這兩個函式寫了一個簡單的加密程式。其中str1是函式str.maketrans(intab,outtab)中的intab,而str2是str.maketrans(intab,outtab)中的outtab。
不過這種加密方法有一個問題。就是intab與outtab所代表的的字串的長度必須一致,且各自的字串中的字元必須唯 一,否則解密時容易出錯。
示例:
str1="abcdefghijklmnopqrstuvwxyz" str2="qwertyuiopasdfghjklzxcvbnm" table1=str.maketrans(str1,str2) table1_1=str.maketrans(str2,str1) str="sword art online" jiami=str.translate(table1) jiemi=jiami.translate(table1_1) print(jiami)#==>lvgkr qkz gfsoft print(jiemi)#==>sword art online
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2945094/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java實體對映工具MapStruct詳解JavaStruct
- Java實體對映工具MapStruct使用詳解JavaStruct
- Elasticsearch 索引的對映配置詳解Elasticsearch索引
- mmap共享儲存對映(儲存I/O對映)系列詳解
- Python中對字串格式化的方法:%、format()、以及f+字串詳解Python字串格式化ORM
- elasticsearch的字串動態對映Elasticsearch字串
- MongoDB via Dotnet Core資料對映詳解MongoDB
- Hibernate配置檔案中對映元素詳解
- MyBatis實現一對一關聯對映MyBatis
- python 關係對映Python
- PHP 使用連結串列實現對映PHP
- Linux 或 Windows 上實現埠對映LinuxWindows
- 設計模式詳解及Python實現設計模式Python
- 最大熵模型詳解與Python實現熵模型Python
- 詳解Python拼接字串的七種方式Python字串
- python 字串replace方法實現探索Python字串
- Python實現環形連結串列詳解Python
- Python實現單向連結串列詳解Python
- Python 兩個字串相減Python字串
- MapStruct實體對映Struct
- 利用iptables實現埠對映(支援動態域名)
- Python 實現隨機打亂字串Python隨機字串
- python實現字串轉換整數Python字串
- C/C++ Qt StringListModel 字串列表對映元件C++QT字串元件
- python實現修改xml檔案內容詳解PythonXML
- Q-Q圖原理詳解及Python實現Python
- M3位帶地址對映和彙編實現對比
- C++ Qt開發:StringListModel字串列表對映元件C++QT字串元件
- 一文詳解Python字串條件判斷方法Python字串
- 探索發現:CSS實現中文兩端對齊CSS
- OpenAi[ChatGPT] 使用Python對接OpenAi APi 實現智慧QQ機器人-學習詳解篇OpenAIChatGPTPythonAPI機器人
- Python實現對比兩個Excel資料內容並標出不同PythonExcel
- 字串篇(python)—兩個字串的最長公共子序列字串Python
- 【模型推理】量化實現分享三:詳解 ACIQ 對稱量化演算法實現模型演算法
- Mybatis實體關聯對映MyBatis
- UI與實體的對映UI
- 『手寫Mybatis』實現對映器的註冊和使用MyBatis
- 使用使用者故事對映實現領域建模 - pulse