首頁 後端開發 php教程 面试题之算法汇总

面试题之算法汇总

Jun 13, 2016 pm 12:24 PM
gt str temp

面试题之算法集锦

  1. 有字符串A,B,求取AB字符串中都含有的字符,例如:①A="hello",B="jeesite",那么输出"e",②A="common",B="month",则输出"mno",输出串的顺序没有要求.
思路1:<span style="color: #000000;">把A去重得到A1</span>,B去重得到B1,然后对A1,B1分别进行排序,然后遍历较短的字符串的每个字符是否存在于较长的字符串中,<span style="color: #000000;">存在则输出问题</span>:1.思路很简单,基本大家都会这么考虑,<span style="color: #000000;">但是面试的时候就没有亮点了思路2</span>:<span style="color: #000000;">假设AB串只包含小写(其实无所谓)</span>,那么创建一个数组,数组的key为a->z,<span style="color: #000000;">value都是0;</span><span style="color: #000000;">php    </span><span style="color: #0000ff;">function</span> stringToChar(<span style="color: #800080;">$str</span>,<span style="color: #800080;">$num</span>=1,<span style="color: #800080;">$tmp</span>=<span style="color: #0000ff;">null</span><span style="color: #000000;">){        </span><span style="color: #0000ff;">if</span>(<span style="color: #0000ff;">empty</span>(<span style="color: #800080;">$tmp</span><span style="color: #000000;">)){</span><span style="color: #800080;">$tmp</span>=<span style="color: #0000ff;">array</span>('a'=>0,'b'=>0,'c'=>0,'d'=>0,'e'=>0,'f'=>0,'g'=>0,'h'=>0,'i'=>0,'j'=>0,'k'=>0,'l'=>0,'m'=>0,'n'=>0,'o'=>0,'p'=>0,'q'=>0,'r'=>0,'s'=>0,'t'=>0,'u'=>0,'v'=>0,'w'=>0,'x'=>0,'y'=>0,'z'=>0<span style="color: #000000;">);        }        </span><span style="color: #800080;">$arr_temp</span>=<span style="color: #008080;">str_split</span>(<span style="color: #800080;">$str</span>,1<span style="color: #000000;">);        </span><span style="color: #0000ff;">foreach</span>(<span style="color: #800080;">$arr_temp</span> <span style="color: #0000ff;">as</span> <span style="color: #800080;">$v</span><span style="color: #000000;">){            </span><span style="color: #0000ff;">if</span>(<span style="color: #800080;">$tmp</span>[<span style="color: #800080;">$v</span>]$num<span style="color: #000000;">){                </span><span style="color: #800080;">$tmp</span>[<span style="color: #800080;">$v</span>]+=<span style="color: #800080;">$num</span><span style="color: #000000;">;            }        }        </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$tmp</span><span style="color: #000000;">;    }    </span><span style="color: #0000ff;">function</span> getStringIntersect(<span style="color: #800080;">$str1</span>, <span style="color: #800080;">$str2</span><span style="color: #000000;">){        </span><span style="color: #800080;">$temp</span>=stringToChar(<span style="color: #800080;">$str1</span>,1<span style="color: #000000;">);        </span><span style="color: #008000;">//</span><span style="color: #008000;">$str2的$num用2 就是为了区分 stemp中的原来的1 是 $str1中设置的</span>        <span style="color: #800080;">$temp</span>=stringToChar(<span style="color: #800080;">$str2</span>,2,<span style="color: #800080;">$temp</span><span style="color: #000000;">);        </span><span style="color: #800080;">$result</span>=''<span style="color: #000000;">;        </span><span style="color: #0000ff;">foreach</span> (<span style="color: #800080;">$temp</span> <span style="color: #0000ff;">as</span> <span style="color: #800080;">$key</span> => <span style="color: #800080;">$value</span><span style="color: #000000;">) {            </span><span style="color: #0000ff;">if</span>(<span style="color: #800080;">$value</span>===3<span style="color: #000000;">){                </span><span style="color: #800080;">$result</span>.=<span style="color: #800080;">$key</span><span style="color: #000000;">;            }        }        </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$result</span><span style="color: #000000;">;    }    </span><span style="color: #800080;">$A</span>="common";<span style="color: #008000;">//</span><span style="color: #008000;">"hello";</span>    <span style="color: #800080;">$B</span>="month";<span style="color: #008000;">//</span><span style="color: #008000;">"jeesite";</span>    <span style="color: #800080;">$result</span>=getStringIntersect(<span style="color: #800080;">$A</span>, <span style="color: #800080;">$B</span><span style="color: #000000;">);    </span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$result</span><span style="color: #000000;">;</span>?><br>今天随便浏览网页的时候又发现了这篇文章(一次谷歌面试趣事)<br>我想起来了 思路二出自这篇文章。
登入後複製

 

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

華為GT3 Pro和GT4的差異是什麼? 華為GT3 Pro和GT4的差異是什麼? Dec 29, 2023 pm 02:27 PM

許多用戶在選擇智慧型手錶的時候都會選擇的華為的品牌,其中華為GT3pro和GT4都是非常熱門的選擇,不少用戶都很好奇華為GT3pro和GT4有什麼區別,下面就給大家介紹一下二者。華為GT3pro和GT4有什麼差別一、外觀GT4:46mm和41mm,材質是玻璃鏡板+不鏽鋼機身+高分纖維後殼。 GT3pro:46.6mm和42.9mm,材質是藍寶石玻璃鏡+鈦金屬機身/陶瓷機身+陶瓷後殼二、健康GT4:採用最新的華為Truseen5.5+演算法,結果會更加的精準。 GT3pro:多了ECG心電圖和血管及安

教你如何修改Win7的暫存檔案位置 教你如何修改Win7的暫存檔案位置 Jan 04, 2024 pm 11:25 PM

temp資料夾是我們的臨時檔案儲存位置,系統會將暫存檔案儲存到這個資料夾中,如果暫存檔案過多,尤其是當temp資料夾在系統磁碟時,很有可能會影響系統運作速度。我們可以透過更改temp位置的方式來解決問題,下面一起來看看吧。 win7temp位置更改教程1、首先右鍵選擇“計算機”,打開“屬性”2、點擊左邊的“高級系統設定”3、點擊下方的“環境變量”4、選中“temp”點擊“編輯”5、然後將「變數值」改為需要變更的路徑即可。

修復:截圖工具在 Windows 11 中不起作用 修復:截圖工具在 Windows 11 中不起作用 Aug 24, 2023 am 09:48 AM

為什麼截圖工具在Windows11上不起作用了解問題的根本原因有助於找到正確的解決方案。以下是截圖工具可能無法正常工作的主要原因:對焦助手已開啟:這可以防止截圖工具開啟。應用程式損壞:如果截圖工具在啟動時崩潰,則可能已損壞。過時的圖形驅動程式:不相容的驅動程式可能會幹擾截圖工具。來自其他應用程式的干擾:其他正在運行的應用程式可能與截圖工具衝突。憑證已過期:升級過程中的錯誤可能會導致此issu簡單的解決方案這些適合大多數用戶,不需要任何特殊的技術知識。 1.更新視窗與Microsoft應用程式商店應用程

如何修復 Windows 11 / 10 中的處理器熱跳脫錯誤 [修復] 如何修復 Windows 11 / 10 中的處理器熱跳脫錯誤 [修復] Apr 17, 2023 am 08:13 AM

大多數設備(例如筆記型電腦和桌上型電腦)長期被年輕遊戲玩家和編碼人員頻繁使用。由於應用程式過載,系統有時會掛起。這使用戶被迫關閉他們的系統。這主要發生在安裝和玩重遊戲的玩家身上。當系統在強制關閉後嘗試啟動時,它會在黑屏上拋出一個錯誤,如下所示:以下是在此引導期間檢測到的警告。這些可以在事件日誌頁面的設定中查看。警告:處理器熱跳閘。按任意鍵繼續。 ..當桌上型電腦或筆記型電腦的處理器溫度超過其閾值溫度時,總是會拋出這些類型的警告訊息。下面列出了Windows系統上發生這種情況的原因。許多繁重的應用程式在

電腦裡temp是什麼意思 電腦裡temp是什麼意思 Sep 29, 2021 pm 04:39 PM

在電腦裡,temp的意思是“臨時資料夾”,該資料夾中保存了許多臨時檔案;其作用是臨時保存應用程式中使用者的工作結果,以防止意外情況造成損失。刪除temp檔案可以釋放硬碟儲存空間,但刪除後第一次開啟應用程式會比較慢。

內部錯誤:無法建立臨時目錄 [已解決] 內部錯誤:無法建立臨時目錄 [已解決] Apr 17, 2023 pm 03:04 PM

Windows系統允許使用者使用可執行/設定檔在您的系統上安裝各種類型的應用程式。最近,許多Windows用戶開始抱怨他們收到一個名為INTERNALERROR:cannotcreatetemporarydirectory在他們的系統上嘗試使用可執行檔安裝任何應用程式的錯誤。問題不僅限於此,而且還阻止用戶啟動任何現有的應用程序,這些應用程式也安裝在Windows系統上。下面列出了一些可能的原因。執行可執行檔進行安裝時不授予管理員權限。為TMP變數提供了無效或不同的路徑。損壞的系

temp是什麼文件 temp是什麼文件 Jan 05, 2021 am 10:43 AM

temp是臨時資料夾,在路徑「C:\Documents and Settings\Administrator\Local Settings\」內,許多臨時檔案放在這裡,收藏夾,瀏覽網頁的臨時文件,編輯文件等。

如何修復無法連線到iPhone上的App Store錯誤 如何修復無法連線到iPhone上的App Store錯誤 Jul 29, 2023 am 08:22 AM

第1部分:初始故障排除步驟檢查蘋果的系統狀態:在深入研究複雜的解決方案之前,讓我們先從基礎知識開始。問題可能不在於您的設備;蘋果的伺服器可能會關閉。造訪Apple的系統狀態頁面,查看AppStore是否正常運作。如果有問題,您所能做的就是等待Apple修復它。檢查您的網路連接:確保您擁有穩定的網路連接,因為「無法連接到AppStore」問題有時可歸因於連接不良。嘗試在Wi-Fi和行動數據之間切換或重置網路設定(「常規」>「重置」>「重置網路設定」>設定)。更新您的iOS版本:

See all articles