一個字串比較的題
看到一個據說是騰訊面試時有關一個字串比較的題:
假設兩個字串中所含有的字元和個數都相同我們就叫這兩個字串匹配,比如: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字串
- 字串比較字串
- shell比較兩個字串是否相等字串
- 字串-簡單字串比較字串
- 比較字串和數字串字串
- PHP比較字串PHP字串
- JAVA字串比較Java字串
- shell 下的字串比較字串
- 一個比較複雜的多次拆分字串的儲存過程字串儲存過程
- oracle中字串的大小比較,字串與數字的比較和運算Oracle字串
- C#比較兩個字串的相似度【轉】C#字串
- Java™ 教程(比較字串和字串的部分)Java字串
- 比較字串和數字串(續)字串
- 字串比較的常用函式字串函式
- Delphi中字串比較大小 VS Oracle-SQL中字串比較大小字串OracleSQL
- python如何比較兩個字串是否相等Python字串
- 字串大小寫轉換和字串的比較字串
- 一個有關多域名session的問題,比較棘手Session
- python字串比較大小Python字串
- 字串拼接運算比較字串
- JavaScript字串如何比較大小JavaScript字串
- LintCode 字串比較字串
- 844. 比較含退格的字串字串
- Gson – 比較兩個順序無關的json字串JSON字串
- Mysql 一個比較好用的函式MySql函式
- 一個比較好的shell指令碼指令碼
- 一個比較好的oracle blogOracle
- 一個比較麻煩的限流需求
- 演算法:比較含退格的字串演算法字串
- 16:忽略大小寫的字串比較字串
- Java字串建立方式比較Java字串
- JavaScript 字串連線效能比較JavaScript字串
- 最近解決了一個比較複雜的“死鎖”問題
- 比較重要的例題
- 一個比較float是否相等的工具類
- tar 命令一個比較有用的引數
- 相容oracle的edit_distance_similarity 比較兩個字串相似度OracleMILA字串
- Pythondifflib字串比較指令碼Python字串指令碼