暴力算法
@searchTarget 要查找的子串
@searchFrom 查找出处
public ArrayList<Integer> search(String searchTarget, String searchFrom) {
//可能会有多个子串被查到,strPos记录子串的位置
ArrayList<Integer> strPos = new ArrayList<Integer>();
int targetLen = searchTarget.length();
int fromLen = searchFrom.length();
// 用j来遍历被查找的子串
int j = 0;
// 用i来遍历所有子串
for(int i = 0; i < fromLen - targetLen; i++) {
// 依次匹配,一个字符一个字符的匹配// 如果匹配成功,就返回i的值
for(j = 0; j < targetLen; j++) {
if (searchFrom.charAt(i+j) != searchTarget.charAt(j)) {
break;
}
}
//如果被查找的子串被遍历到了最后说明找到匹配目标
if (j == targetLen) {
strPos.add(i);
i=i+M
}
}
return strPos;
}
分享到:
相关推荐
找到匹配失败时的最合适的回退位置,而不是简单的回退到子串的第一个字符(常规的枚举查找方式,是简单的回退到子串的第一个字符,KMP算法的性能分析Java实现实例)*此仅供大家参考、交流,希望对大家有所帮助!
算法解析:深入解析了常见的字符串算法问题,如最长公共子串、字符串排序、子串查找等,并提供了解题思路和代码示例。 实战案例:通过具体的实战案例,演示了如何运用字符串处理技术解决实际问题,如文本处理、密码...
2 8 字符串的最长回文子串:Manacher 算法 42 第 3 章 序列 44 3 1 网格中的最短路径 44 3 2 编辑距离(列文斯登距离45 3 3 最长公共子序列 47 3 4 升序最长子序列 49 3 5 两位玩家游戏中的必胜策略 52 第 4 章 数组...
Java 解决方案。 问题 目录 问题 001-050 # 标题 解决方案 时间 空间 注释 1 二和 (324 毫秒) 上) 上) 2 两个数字相加 (428 毫秒) O(Max(N, M)) O(1) 3 无重复字符的最长子串 (368 毫秒) 上) O(1) C# 使用...
Java 中实现和测试的。 这些算法根据其难度分为三个主要类别。 内容列表 二和问题 倒整数问题 删除排序数组中的重复问题 加一 反向链表 三和归零 子阵列总和等于 K 使有效括号的最小删除 字符串压缩 在旋转排序数组...
算法 自2019-11-01 15:50介绍数据结构和算法问题的面试解决方案,以Java,C,Python和Go实施。 思维导图: : 用Java实现的数据结构: : LeetCode(335) 标签二元搜寻数学两个指针细绳大批哈希表链表分而治之种类位...
主要包括数据结构的java实现 1.数组 2.并查集 3.图 4.链表 5.队列 6.栈 7.树 divide_conquer:分治 1.活动选择问题 2.输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子...
9.各最长回文子串查找算法 - 回文子串查找 - No5 10.中序遍历,莫里斯(morris)遍历法 - 二叉树遍历,二叉树线索化 - No94 11.传统快排,快排三数取中法 - 快排 - No215 12.小根堆 - 代码实现 - No215 13.两边递归组合...
算法 数组中缺失数 具有给定和的子数组 对 0、1 和 2s 的数组进行排序 平衡点 最大和递增子序列 数组中的领先者 最小平台 大小为 k 的所有子数组的最大值 组中的反向数组 第 K 个最小元素 捕集雨水勾股三重巧克力...
java lru leetcode 有趣的算法 有趣的字符串 最长回文子串(Manacher 算法) 线性字符串旋转到位 数学技巧 使用 sqr fxn(快速逆平方根 - 恒定时间)查找 w/o 元素的平方根: DP 寻找具有最大和的连续子数组(Kadane...
算法 链表 Linked List Cycle Remove Nth Node From End of List Merge Two Sorted Lists 两个链表的交集 Remove Duplicates from Sorted List Palindrome Linked List LL中的插入排序 使用额外的缓冲区从未排序的...
java lru leetcode 数据结构和算法 Lintcode 解决方案 阶梯 - 算法 1 - 击败算法面试 不。 标题 解决方案 困难 标签 笔记 627 最长回文 简单的 哈希表 13 实现 strStr 简单的 细绳 415 有效回文 中等的 特点 200 ...
java lru leetcode 算法学习 排序 LeetCode # 题名 2 3 [无重复字符的最长子串] 9 14 15 16 19 21 24 25 [K 个一组翻转链表] 26 27 28 45 [跳跃游戏 II] 50 53 [最大子序和] 54 61 66 67 69 70 76 [最小覆盖子串] 94...
和其他算法问题 文件描述 2_add_two_numbers.c : 两个数相加 3_solution.c : 无重复字符的最长子串 space_urlencode.c : 在 O(n) space_urlencode.c空间更改为“ ” ./two_dimension_binary_search.c : 二维排序数组...
算法打卡日记 ID Title Topic Solution Ideas Java Python Blog 1 两数之和 数组 √ --- √ × × 2 两数相加 链表 √ --- √ × × 3 无重复字符的最长子串 双指针 √ --- √ × × 5 最长回文子串 动态规划 √ ---...
最长回文子串006-Z字形变换010-正则表达式匹配011-盛最多水的容器012-整数转罗马数字015-三数之和016-最接近的三数之和017-电话号码的字母组合018-四数之和019-删除链表的倒数第N个节点020-有效的括号未完待续……...
java lru leetcode 有趣的算法 有趣的字符串 最长回文子串(Manacher 算法) 线性字符串旋转到位 数学技巧 使用 sqr fxn(快速逆平方根 - 恒定时间)查找 w/o 元素的平方根: DP 寻找具有最大和的连续子数组(Kadane...
20.5.6 基本查找与排序算法 20.5.7 swap、iter_swap和swap_ranges 20.5.8 copy—backward、 merge、 unique和reverse 20.5.9 inplace_merge、 unique—copy和reverse—copy 20.5.10 集合操作 20.5.11 1...
20.5.6 基本查找与排序算法 20.5.7 swap、iter_swap和swap_ranges 20.5.8 copy—backward、 merge、 unique和reverse 20.5.9 inplace_merge、 unique—copy和reverse—copy 20.5.10 集合操作 20.5.11 1...