剪花布条

问题来源:Problem - 2087

问题描述:


问题描述

思路分析:

    思路一:

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

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

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

    实现代码:


思路一代码

思路二:

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

实现代码:


思路二代码
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容