Leecode统计子串个数(java)
/**
- 获取一个字符串在另一个字符串中出现的次数。判断str2在str1中出现的次数
 */
public class StringExer2 {
    public static void main(String[] args) {
        String str1 = "ab";
        String str2 = "abaaba";
        getCount(str1, str2);
        System.out.println("子串出现的次数为:" + count);
    }
    /*
     * 如果发现str2中有字符与str1中字符相等,则进入内层循环
     *  用str2中每一个字符去和str1的字符比较
     *      如果不相等,结束内层循环
     *      如果相等,判断当前子串索引是否与子串长度-1相等
     *          如相等,则子串已遍历完,count+=1
     *          如不等,则继续下一次内层循环
     *
     *
     */
    static int getCount(String str1, String str2) {
        str1 = "ab";
        str2 = "aabjkdaaaaafjksdabkjdfsdabj";
        //将字符串转换成字符数组
        char[] ch1 = str1.toCharArray();
        char[] ch2 = str2.toCharArray();
        int len1 = str1.length();
        int len2 = str2.length();
        int count = 0;//记录出现次数
        boolean loopFlag = true;//设置一个标识,用于判断是否找到匹配字符的开关
        for (int i = 0; i < len2; i++) {
            //用比较数组的首元素进行匹配,一旦匹配到相同的字符,开始后继的检测
            if (ch1[0] == ch2[i]) {
                for (int j = 0, k = i; j < len1; j++, k++) {
                    if (k != len2 && ch1[j] == ch2[k]) { // k != len2 是为了应对ab在aba中出现的这种状况
                        //比较完最后一个字符元素且相同,计数器+1
                        if (j == len1 - 1) {
                            count++;
                            i += len1 - 1;//用于跳过已在匹配的子字符串范围内的长度,-1是为了抵消循环的递增
                            loopFlag = false;
                        }
                    } else
                        break;//一旦发现对应位数不相等,退出检测
                }
            }
        }
        if (loopFlag) {
            System.out.println("没有匹配的字符串!");
        }
        return count;
    }
}
Leecode统计子串个数(java)的更多相关文章
- Loj 103、10043 (KMP统计子串个数)
		KMP算法学习链接:https://blog.csdn.net/starstar1992/article/details/54913261/ KMP算法:可以实现复杂度为O(m+n) 为何简化了时间复 ... 
- [spoj DISUBSTR]后缀数组统计不同子串个数
		题目链接:https://vjudge.net/contest/70655#problem/C 后缀数组的又一神奇应用.不同子串的个数,实际上就是所有后缀的不同前缀的个数. 考虑所有的后缀按照rank ... 
- Java实现 LeetCode 828 统计子串中的唯一字符(暴力+转数组)
		828. 统计子串中的唯一字符 我们定义了一个函数 countUniqueChars(s) 来统计字符串 s 中的唯一字符,并返回唯一字符的个数. 例如:s = "LEETCODE" ... 
- Java实现 蓝桥杯VIP 算法训练 统计单词个数
		题目描述 给出一个长度不超过200的由小写英文字母组 成的字母串(约定;该字串以每行20个字母的方式输入,且保证每行一定为20个).要求将此字母串分成k份 (1< k< =40),且每份中 ... 
- Java实现 LeetCode 466 统计重复个数
		466. 统计重复个数 定义由 n 个连接的字符串 s 组成字符串 S,即 S = [s,n].例如,["abc", 3]="abcabcabc". 另一方面, ... 
- HDU 4622 Reincarnation (查询一段字符串的不同子串个数,后缀自动机)
		Reincarnation Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)To ... 
- 第六章第一个linux个程序:统计单词个数
		第六章第一个linux个程序:统计单词个数 从本章就开始激动人心的时刻——实战,去慢慢揭开linux神秘的面纱.本章的实例是统计一片文章或者一段文字中的单词个数. 第 1 步:建立 Linu x 驱 ... 
- HDU 3948 不同回文子串个数
		集训队论文中有求不同子串个数的做法,就是扫一遍height数组,过程中根据height数组进行去重.对于本题也是雷同的,只是每一次不是根据与排名在上一位的LCP去重,而是与上一次统计对答案有贡献的后缀 ... 
- ACdream 1430——SETI——————【后缀数组,不重叠重复子串个数】
		SETI Time Limit: 4000/2000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) Submit Statist ... 
随机推荐
- CentOS7.3 ffmpeg安装
			ffmpeg安装笔记 ======================== 一.安装依赖 yum -y install yum-utils yum-config-manager --add-repo ht ... 
- Java复习总结(二)Java SE 面试题
			Java SE基础知识 目录 Java SE 1. 请你谈谈Java中是如何支持正则表达式操作的? 2. 请你简单描述一下正则表达式及其用途. 3. 请你比较一下Java和JavaSciprt? 4. ... 
- HTML5 Canvas小游戏基础:用户交互
			交互是游戏的根本.缺少了用户交互,游戏就不能称之为游戏,只能说是动画或电影.事件是浏览器响应用户交互操作的一种机制. 1.事件和事件执行 事件定义了用户与页面交互时产生的各种操作(主要通过鼠标或热键的 ... 
- 什么是 PHP SimpleXML?
			PHP SimpleXML PHP SimpleXML 处理最普通的 XML 任务,其余的任务则交由其它扩展处理. 什么是 PHP SimpleXML? SimpleXML 是 PHP 5 中的新特性 ... 
- Python os.getcwdu() 方法
			概述 os.getcwdu() 方法用于返回一个当前工作目录的Unicode对象.高佣联盟 www.cgewang.com Unix, Windows 系统下可用. 语法 getcwdu()方法语法格 ... 
- layui实现图片上传
			页面代码: <style> .uploadImgBtn2{ width: 120px; height: 92px; cursor: pointer; position: relative; ... 
- CentOS中配置NFS
			https://www.cnblogs.com/yeungchie/ NFS是Network File System的缩写,即网络文件系统. 它的主要功能是通过网络(一般是局域网)让不同的主机系统之间 ... 
- 探究:编程语言那么多,为什么偏偏是 C 语言成了大学的必修课?
			谁叫你不幸生在中国了? ——何祚庥(中国科学院院士) 这是一本给非计算机专业的大学生的C语言的书.“我不是学计算机的,为啥要学C语言?”这个问题每年在中华大地都会被问上几百万次.被问的对象可能是老师, ... 
- luogu P5633 最小度限制生成树 wqs二分
			LINK:最小度限制生成树 还是WQS二分的模板题 不过相当于我WQS二分的复习题. 对于求出强制k个的答案 dp能做不过复杂度太高了. 世界上定义F(x)表示选出x个的答案 画成图像 其实形成了一个 ... 
- LOJ #10222. 「一本通 6.5 例 4」佳佳的 Fibonacci 题解
			题目传送门 如果之前推过斐波那契数列前缀和就更好做(所以题目中给出了). 斐波那契数列前缀和题目链接 先来推一下斐波那契数列前缀和: \[\sum\limits_{i=1}^nf(i) \] 其中 \ ... 
