leetcode 字串模式匹配,阿里面試演算法題

2021-10-06 10:03:16 字數 1334 閱讀 2016

你有兩個字串,即pattern和value。 pattern字串由字母"a"和"b"組成,用於描述字串中的模式。例如,字串"catcatgocatgo"匹配模式"aabab"(其中"cat"是"a",「go"是"b」),該字串也匹配像"a"、"ab"和"b"這樣的模式。但需注意"a"和"b"不能同時表示相同的字串。編寫乙個方法判斷value字串是否匹配pattern字串。

示例 1:

輸入: pattern = 「abba」, value = 「dogcatcatdog」

輸出: true

示例 2:

輸入: pattern = 「abba」, value = 「dogcatcatfish」

輸出: false

題解

class

test

public

static

boolean

patternmatching

(string pattern, string value)

if(count_a ==0)

return

single_count

(count_b);if

(count_b ==0)

return

single_count

(count_a)

;return count_a < count_b ?

muti_count

(count_a, count_b,

'a')

:muti_count

(count_b, count_a,

'b');}

private

static

boolean

single_count

(int count)

return

true;}

private

static

boolean

muti_count

(int small_count,

int big_count,

char small_ch)

else

}return

true;}

return

single_count

(small_count)

||single_count

(big_count);}

private

static

boolean

check

(string str,

int value_idx)

}

字串模式匹配

include include include include include includeusing namespace std inline unsigned int64 getclock const char min a const int characters 26 int shiftta...

字串模式匹配

子串的定位操作通常稱作串的模式匹配,是各種串處理系統中最重要的操作之一。設有2 個串 主串 s和子串 t,串的簡單模式匹配演算法是 從主串 s 中的第乙個字元開始和子串 t中的第乙個字元比較,分別用i和 j 指示s串和 t串中正在比較的字元的位置。若相等,則繼續逐個比較後續字元 否則從主串 s的第二...

字串模式匹配

bf演算法 我們常用的暴力演算法,時間複雜度o n2 o n 2 演示 int bf const char text,const char pattern if flag return 1 return 0 kmp演算法 基於bf演算法的優化,他根據字串出現字首與字尾相同的情況進行優化 假設這裡sa...