問題來源:Problem - 2087
問題描述:

問題描述
思路分析:
? ? 思路一:
? ?????最開始遇到這道題,就是想到用匹配的方式去做。
????但這道題與常見的匹配問題又不太一樣,我們常見的匹配問題是在字符串A中找到多少個與B字符串相同的問題,除了第一個字符,其他字符可以參與多次匹配。而由這道題的輸出樣式可以看出,如果已經(jīng)匹配了的字符,就不再參與匹配。如題目中輸入“aaaaaa aa”,輸出的結(jié)果是3。
? ? 這道題,采用循環(huán)的方法,我將字符串B中的字符,依次和字符串A中的字符進行匹配,設置一個變量r1來記錄字符串相同的個數(shù),設置一個變量r2來記錄字符相同的個數(shù),如果r2和字符串B的長度相等,則說明匹配到了,變量r1加1,下一次字符串A開始的位置則是當前字符串A的位置加上字符串長度的位置,循環(huán)結(jié)束后,輸出r1,就是能夠找到的個數(shù)。
????實現(xiàn)代碼:

思路一代碼
思路二:
? ? 在網(wǎng)上看到一種更加簡單的方法。將字符串A中與字符串B相同的子字符串用空格代替,用字符串C來表示。最后,通過(字符串A的長度-字符串C的長度)/字符串B的長度,這樣就可以直接找出相同字符串的個數(shù)了,方便快捷。
實現(xiàn)代碼:

思路二代碼