每天一道演算法題系列二十四之實現strStr

2021-10-12 18:06:41 字數 997 閱讀 9233

public

class

strstr

/** * 暴力解法:我們去挨個匹配,比如說 qwertyqwerty 去匹配 tyqwe

* 首先我們先從q開始,往後面去進行匹配 q->w->e->r->t

* 等到t的時候,就開始判斷tyqwe是否在qwertyqwerty裡面

* 如果不對,就需要回到 qwertyqwerty 的最開始匹配到 tyqwe 的第乙個數****

*/public

static

intstrstr

(string haystack, string needle)

int a =0;

int b =0;

while

(a < h - n -1)

int result =0;

/* * 這裡已經相等了,然後需要判斷a < h && b < n ,如果不加這個判斷會有問題

* 然後主要是判斷 qwertyqwerty 是否包含 tyqwe

* */

while

(a < h && b < n && haystack.

charat

(a)== needle.

charat

(b))

//這裡主要是做最後的判斷,相當於就是是否匹配上 匹配上了就直接返回

if(result == n)

//沒匹配上 返回初始的位置 重新進行判斷

a = a - result +1;

}return a ;

}}

還有一種更加簡單的解法

public

static

intstrstr1

(string haystack, string needle)

}return-1

;}

每天一道演算法題(二十六)

給你 n 個非負整數 a1,a2,an,每個數代表座標中的乙個點 i,ai 在座標內畫 n 條垂直線,垂直線 i 的兩個端點分別為 i,ai 和 i,0 找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。說明 你不能傾斜容器,且 n 的值至少為 2。示例 輸入 1,8,6,2,5,...

每天一道演算法題

no.1 棧是特殊的線性表,它。a.對 b.錯答案 錯,它的插入和刪除都是在同一端進行的。no.2 n個葉子節點的滿二叉樹 除了葉子節點,每個節點都有兩個孩子 總共有多少個節點?a.2n 1 b.2n c.n 1 d.n答案 a 滿二叉樹我們講過了,度為0的節點比度為2的加點多乙個。滿二叉樹是特殊的...

每天一道演算法題

1.給定乙個只包括 的字串,判斷字串是否匹配。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。思路 正確思路 不需要考慮輸入內容是否合法,這只是做題,不是工程 定義乙個字典,後括號為鍵,前半部分為值 定義乙個元素儲存棧頂,注意這個設定,取棧...