剪花布条

问题来源:Problem - 2087

问题描述:


问题描述

思路分析:

    思路一:

       最开始遇到这道题,就是想到用匹配的方式去做。

    但这道题与常见的匹配问题又不太一样,我们常见的匹配问题是在字符串A中找到多少个与B字符串相同的问题,除了第一个字符,其他字符可以参与多次匹配。而由这道题的输出样式可以看出,如果已经匹配了的字符,就不再参与匹配。如题目中输入“aaaaaa aa”,输出的结果是3。

    这道题,采用循环的方法,我将字符串B中的字符,依次和字符串A中的字符进行匹配,设置一个变量r1来记录字符串相同的个数,设置一个变量r2来记录字符相同的个数,如果r2和字符串B的长度相等,则说明匹配到了,变量r1加1,下一次字符串A开始的位置则是当前字符串A的位置加上字符串长度的位置,循环结束后,输出r1,就是能够找到的个数。

    实现代码:


思路一代码

思路二:

    在网上看到一种更加简单的方法。将字符串A中与字符串B相同的子字符串用空格代替,用字符串C来表示。最后,通过(字符串A的长度-字符串C的长度)/字符串B的长度,这样就可以直接找出相同字符串的个数了,方便快捷。

实现代码:


思路二代码

你可能感兴趣的:(剪花布条)