排列子串;及翻譯字串分析
今日面試題:排列子串
給定兩個字串A和B,判斷A中是否包含由B中字元重新排列成的新字串。例如:A=abcdef, B=ba,結果應該返回true。因為ba的排列ab,是A的子串。
==========================================================
翻譯數字串分析
原題
翻譯數字串,類似於電話號碼翻譯:給一個數字串,比如12259,對映到字母陣列,比如,1 -> a, 2-> b,... , 12 -> l ,... 26-> z。那麼,12259 -> lyi 或 abbei 或 lbei 或 abyi。輸入一個數字串,判斷是否能轉換成字串,如果能,則列印所以有可能的轉換成的字串。動手寫寫吧。
分析轉自@lxhgww 的一條微博“special thanks to @陳利人,找工作準備過程中,翻完你的3600多條微博,而且看完了所有的評論,收到了Microsoft和Google總部的offer,最終簽約Google Mountain View”
首先要恭喜這位同學,我們能夠幫助到這位同學,是我們莫大的榮幸,也是對我們待字閨中的最大的鼓勵。我們會再接再厲,和同學們分享更多的題目。也希望同學們能夠積極的參與進來,踴躍的討論,各種思路進行碰撞。我們相信,不僅僅會對找工作有很大的幫助,對日常的工作也會有很大的促進的。
再一次恭喜這位同學!
開始今天的分析。這個題目是一個比較直接,比較簡單的題目。面試官會出這樣的題目,一般都是考察大家的coding的功力的。這個實話實說,真的沒有捷徑。就是多寫、多練,也可以閱讀優秀的程式碼,不斷的體會思路。
我們這裡來分析一下這個題目的分析思路。看完這個描述,我們應該注意到一下的細節:
* 對映是在[1,26]這個範圍內數字
* 輸入的字串是否包括0或者負數?
這些細節要注意,不明確的要諮詢面試官,要不然,很容易讓你的程式出現漏洞。面試官也比較在意這個互動的過程。
充分理解題目的含義、目的之後,很直接的就可以想到這個題目可以用遞迴解決。如原題中的例子:12259,它有兩個遞迴的子問題,(1)2259和(12)259,前面的括號表示是否能夠通過對映表翻譯。同理每一個子問題,都會表示為這樣的兩個子問題。
接下來,我們考慮(1)2259的兩個子問題:
1. (12)259
2. (122)59
大家有注意到,第一個和12259的一個子問題重複了。大家是否對這個似曾相識呢?當大家把遞迴過程的樹形結構畫出來,會發現更多的重複子問題,這就給了我們改進的空間,只需要取消這些重複計算就可以了。
第一個方法就是記憶法,將計算過的結果快取起來,這樣可以後續接著使用。但是更近一步,我們是可以採用動態規劃的方法的。很多同學也都直接的想到了。
上面的過程,是為初學者指的路,希望能對大家有所幫助。但還有一個細節,大家要注意,這個題目不僅僅是判斷是否可以,還需要列印出來所有的情況。這個細節要在程式設計的時候注意。
【分析完畢】
本文來自微信:待字閨中,2013-09-29釋出,原創@陳利人 ,歡迎大家繼續關注微信公眾賬號“待字閨中”。
相關文章
- 【翻譯】影像到Base64字串轉換字串
- 一串字串的翻轉字串
- JZ-071-把數字翻譯成字串字串
- 爬蟲—有道翻譯案例分析爬蟲
- 口譯翻譯類別及服務內容
- 07字串操作字串
- 本地化字串管理xcode檔案翻譯18 Strings字串XCode
- OpenCV翻譯及專案總結一OpenCV
- day7字串字串
- ES6字串字串
- [翻譯]Java排錯指南 - 5 確定崩潰何地發生Java
- 翻譯
- 中國翻譯協會:2022中國翻譯及語言服務行業發展行業
- java 生成32位字串Java字串
- 掘金翻譯計劃 4 月份報及優秀譯文集合
- SAP Spartacus internationalization ( i18n ) 翻譯問題的排錯指南
- 蝴蝶書-task2: 文字推理、摘要、糾錯 transformers實現翻譯 OpenAI翻譯 PyDeepLX翻譯 DeepLpro翻譯ORMOpenAI
- Ubuntu安裝劃詞翻譯軟體Goldendict 單詞翻譯 句子翻譯UbuntuGo
- 晶片行業內 die 的翻譯及詞解晶片行業
- 如何完成中文翻譯日文線上翻譯
- 總結:44個Python3字串內建方法大全及示例Python字串
- 20201118 5.2元組 5.3字串字串
- Java 11字串API有更新Java字串API
- python如何翻轉字串?Python字串
- 談談字串翻轉字串
- 程式碼隨想錄 day8|| 151 翻轉單詞 28 字串匹配 459 重複子串字串匹配
- 騰訊互動翻譯的坑爹翻譯
- Laravel 谷歌翻譯 /Bing 翻譯擴充套件包Laravel谷歌套件
- OpenCV翻譯專案總結二——Mat翻譯OpenCV
- 掘金翻譯計劃 2017 回顧 — 致謝譯者及近期規劃
- 每天一個 PHP 語法二字串使用及內部結構PHP字串
- 以太坊 web3.js 文件翻譯及說明WebJS
- 【JS 逆向百例】cnki 學術翻譯 AES 加密分析JS加密
- 文件翻譯器怎麼用?如何翻譯Word文件?
- TailWind文件翻譯說明以及每日翻譯進度AI
- 有道雲詞典--翻譯/螢幕取詞翻譯
- 使用google翻譯 api 翻譯中文成其他語言GoAPI
- Go的100天之旅-08字串Go字串
- HDOJ:PRO2017字串統計字串