一個字串比較的題
看到一個據說是騰訊面試時有關一個字串比較的題:
假設兩個字串中所含有的字元和個數都相同我們就叫這兩個字串匹配,比如:abcda和adabc,由於出現的字元個數都是相同,只是順序不同,所以這兩個字串是匹配的。要求高效!
當然考慮用高效快捷的Python來練一練,看到有人很快就寫下了以下程式碼:
>>> sorted('abcda') == sorted('adabc')
True
Geek的玩法很多,除了有人先提到的上面做法,我還想到以下方法也挺Geek:
>>> from collections import Counter
>>> Counter('abcda') == Counter('adabc')
True
(Counter類在Python 2.7裡被新增進來)
看看結果,是一樣的:
>>> Counter('abcda')
Counter({'a': 2, 'c': 1, 'b': 1, 'd': 1})
>>> Counter('adabc')
Counter({'a': 2, 'c': 1, 'b': 1, 'd': 1})
另外,可以稍微格式化輸出結果看看,用到了Counter類的elements()方法:
>>> list(Counter('abcda').elements())
['a', 'a', 'c', 'b', 'd']
>>> list(Counter('adabc').elements())
['a', 'a', 'c', 'b', 'd']
誰說Python只有一種方式?現在的Python在保持簡捷高效的一貫風格的同時,玩法也越來越多了。
相關文章
- Java 字串比較、拼接問題Java字串
- 字串比較字串
- 字串-簡單字串比較字串
- PHP比較字串PHP字串
- python如何比較兩個字串是否相等Python字串
- Java™ 教程(比較字串和字串的部分)Java字串
- C#比較兩個字串的相似度【轉】C#字串
- python字串比較大小Python字串
- 字串比較的常用函式字串函式
- 字串大小寫轉換和字串的比較字串
- 844. 比較含退格的字串字串
- 字串拼接運算比較字串
- 演算法:比較含退格的字串演算法字串
- 相容oracle的edit_distance_similarity 比較兩個字串相似度OracleMILA字串
- 一個比較麻煩的限流需求
- 使用String. localeCompare比較字串字串
- Java字串建立方式比較Java字串
- Go和Python比較的話,哪個比較好?GoPython
- 比較重要的例題
- 一個比較float是否相等的工具類
- JAVA中字串比較equals()和equalsIgnoreCase()的區別Java字串
- Java中的字串操作(比較String,StringBuiler和StringBuffer)Java字串UI
- 探討一個比較複雜的查詢
- 個人比較反感的一些寫法
- 利用compareTo方法進行字串比較排序字串排序
- iOS 一個比較完美的 Growing TextViewiOSTextView
- flutter仿boss直聘,一個比較完整的例子(一)Flutter
- 一些比較典型的機率期望問題
- 簡單介紹Go 字串比較的實現示例Go字串
- 記錄一次數字和字串比較時候犯的錯誤字串
- 輸入兩個長度相同的字串,比較兩個數在相同位置的字元是否相同字串字元
- Cesium 比較常用的幾個方法
- RowFish -- 開源一款比較好看的docusaurus主題
- 對VM逆向的分析(CTF)(比較經典的一個虛擬機器逆向題目)虛擬機
- LeetCode -844. 比較含退格的字串(棧、雙指標)LeetCode字串指標
- 使用錯誤的運算子進行字串比較缺陷漏洞字串
- 【教程】一個比較良心的C++程式碼混淆器C++
- 同一張表的兩個欄位比較查詢
- php比較運算子的安全問題PHP