关注
滑动窗口+Hash吧, O(n) 的复杂度,比较时只需要对比两个串hash之后的值。
public static int find(String father, String child){
int len1 = father.length();
int len2 = child.length();
if(len1<len2 || len1<=0){
return -1;
}
// 初始化2的N次方
int[] N2 = new int[26];
for(int i=0; i<26; i++){
N2[i] = (int) Math.pow(2,i);
}
// 计算child的值
int childValue = 0;
for(int i=0; i<len2; i++){
childValue += N2[child.charAt(i)-'a'];
}
// System.out.println("childValue---"+ childValue);
int fatherValue = 0;
for(int i=0; i<len1; i++){
if(i>=len2){
fatherValue -= N2[father.charAt(i-len2)-'a'];
}
fatherValue += N2[father.charAt(i)-'a'];
if(fatherValue == childValue){
return i-len2+1;
}
}
return -1;
}
查看原帖
点赞 评论
相关推荐
NewCoderAA...:毁意向?那肯定算毁OC啊
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# mt对你说过最有启发的一句话 #
2609次浏览 58人参与
# 考研失败就一定是坏事吗? #
158946次浏览 1128人参与
# 被上班搭子“传染”了哪些习惯 #
1312次浏览 48人参与
# 今年秋招你收到了多少封邮件? #
3015次浏览 73人参与
# 工作后,你落下了哪些病根 #
3374次浏览 94人参与
# 秋招特别不鸣谢 #
2271次浏览 40人参与
# 选实习,你更看重哪方面? #
2561次浏览 55人参与
# 工作后明白的那些道理 #
34999次浏览 466人参与
# 巨人网络求职进展汇总 #
181446次浏览 1214人参与
# 摸鱼被leader发现了怎么办 #
76533次浏览 443人参与
# 什么是优秀的实习经历 #
1022次浏览 45人参与
# 非技术2024笔面经 #
446352次浏览 4909人参与
# 你见过最离谱的招聘要求是什么? #
246291次浏览 1696人参与
# 秋招感动瞬间 #
109684次浏览 497人参与
# 工作中遇到的歹人 #
5125次浏览 111人参与
# 选完offer后,你后悔学机械吗? #
49256次浏览 270人参与
# 当发现同事想辞职 #
12366次浏览 39人参与
# 分享一个让你热爱工作的瞬间 #
53284次浏览 466人参与
# 第一份工作应该选择高薪还是大平台 #
177380次浏览 966人参与
# 上班到公司第一件事做什么? #
115148次浏览 806人参与