《Cracking the Coding Interview程式設計師面試金典》----單詞最近距離

塵封的記憶0發表於2017-05-03
時間限制:3秒 空間限制:32768K 熱度指數:610
本題知識點: 查詢 字串
 演算法知識視訊講解

題目描述

有一篇文章內含多個單詞,現給定兩個單詞,請設計一個高效演算法,找出文中這兩個單詞的最短距離(即最少相隔的單詞數,也就是兩個單詞在文章中位置的差的絕對值)。

給定一個string陣列article,代表所給文章,同時給定文章的單詞數n和待查詢的兩個單詞xy。請返回兩個單詞的最短距離。保證兩個單詞均在文中出現且不相同,同時保證文章單詞數小於等於1000。



程式碼如下:

class Distance {
public:
    int getDistance(vector<string> article, int n, string x, string y) {
        int px=0,py=0,result=n;
        for(int i=0;i<n;i++){
            if(article[i]==x)
                px=i;               
            else if(article[i]==y)
                py=i;
            if(px!=0&&py!=0)//確保x和y都至少找到了一個。
            result=min(abs(px-py),result);
             
        }
        return result;
    }
};

不懂的可以加我的QQ群:261035036(IT程式設計師面試寶典

群) 歡迎你到來哦,看了博文給點腳印唄,謝謝啦~~



相關文章