刷題的時候遇到一個題目,字符串列表strs[str]中包含許多字符串元素,對比字符串元素間是否有相同字母。
在進行對比的時候,可以將字符串映射為二進制0、1串,01串進行位運算中的與運算,可以快速得出答案(與運算后結果大於0則存在相同字母)。
然而,Python中是沒有字符型類型的,所以在進行字符串元素映射到01串的操作時,無法用pos = char - 'a'得到每個字母對應的01串位置。而使用字典又太過麻煩。
一番學習,發現Python內置方法ord()可以實現此功能。
ord(char)返回char對應的ASCII碼。如pos = ord('f') - 97,即可得到某個字母對應的01串中的位置。
如何得到01串:
one_hot = 0
pos = ord('f') - 97
one_hot += 2 ** pos
字母轉ASCII碼:ord(str)
ASCII碼轉字母:chr(int)