脑洞大开的翻转代码
介紹
有一個序列 abcdefgh, 假如想要讓 abc 和 defgh 互換位置, 可以如何做呢?
這里介紹一種比較腦洞的解法.
abc -> cba;
defgh -> hgfed;
現在, 整個序列看起來就是這樣 cbahgfed.
cbahgfed -> defghabc;
這樣就,完成了 abc 和 defgh 的位置互換.
具有實用價值嗎?
通常來說,翻轉代碼在時間和空間上都很高效(具體還是要看所使用的開發語言的特性),而且邏輯清晰,代碼非常簡短, 很難出錯.
《編程珠璣》第二章的一段話很好的介紹了翻轉代碼的使用價值.
Brian Kernighan 和 P.J.Plauger 在其1981年出版的Software Tools in Pascal 一書中,就使用該代碼在文本編輯器中實現了行的移動. Kernighan 報告稱在第一次執行的時候程序就正確運行了, 而他們先前基于鏈表的處理相似任務的代碼則包含幾個錯誤. KenThompson 在 1971 年編寫了編輯器和這種求逆代碼, 甚至在那時就主張把該代碼當作一種常識.總結
                            
                        - 上一篇: 随机生成颜色和透明度
 - 下一篇: React as a UI Runtim