我不是Ruby程序員,但在試圖回答這個問題python's counterpart for Ruby String#succ?時,我試圖瞭解Ruby的實現如何工作。然後我提到的文檔succ → new_str,我意識到,所有的例子不符合說明中,除了瞭解字符串#succ
"<<koala>>".succ #=> "<<koalb>>"
我的Python實現返回
>>> succ("<<koala>>")
'<<koala>?'
通過採用三個演替規律
- 遞增數字總是會產生另一個數字
- 遞增一個字母會導致另一個字母同樣的情況。
- 遞增非字母數字使用底層字符集的整理順序。
正如從文檔解釋,但看到上面的例子,似乎我失去了一些東西。
有人能幫我理解上面例子背後的邏輯嗎?
*從最右邊的字母數字(或最右邊的字符(如果沒有字母數字)*)開始*,因此您必須增加'a'。只有在字符串中有* no *字母數字時,纔會將'>'增加到下一個字符。 –
這是一個關於Ruby或關於Python的問題嗎?如果要說明Ruby的succ是如何工作的,那麼如何在Python中實現它應該是一個獨立的問題,在這裏應該是無關緊要的。你的問題混淆了。 – sawa
根據Ruby文檔:*後繼者是通過從字符串中最右邊的字母數字(或最右邊的字符,如果沒有字母數字)開始遞增字符來計算的* – lurker