京东第一题,求相似字符串个数,有大佬ac的吗

京东第一题,求相似字符串,有大佬ac的吗,附60%ac的代码
input:ababcb
xyx
output:3

'''
input:ababcb
xyx
output:3
'''
import sys
import os
import re
def KMP(S):
    m = len(S)
    N = [0 for i in range(m)]
    for i in range(1,m):
        k = N[i-1]
        while(k>0 and S[i]!=S[k]):
            k = N[k-1]
        if(S[i]==S[k]):
            N[i]=k+1
        else:
            N[i]=0
    return N
if __name__ == '__main__':
    S = sys.stdin.readline().strip()
    T = sys.stdin.readline().strip()
    len1 = len(S)
    len2 = len(T)
    TN = KMP(T)
    count = 0
    if(len1<len2):
        print(0)
        sys.exit()
    for i in range(len1):
        tmp = S[i:i+len2]
        tmpN = KMP(tmp)
        if(len(tmp)<len2):
            break
        elif(tmpN==TN):
            count+=1
    print(count)

#京东#
全部评论
a了75%,哎
点赞 回复 分享
发布于 2018-09-09 21:14
只过了83.。。。
点赞 回复 分享
发布于 2018-09-09 21:15
爆破75%,没法了
点赞 回复 分享
发布于 2018-09-09 21:18
mark,坐等ac代码
点赞 回复 分享
发布于 2018-09-09 21:19
83
点赞 回复 分享
发布于 2018-09-09 21:20
def Similar(s,t,n):     flag=True     dic={}     for i in range(n):         if s[i] in dic.keys():             if dic[s[i]]==t[i]:                 continue             else:                 flag=False                 break         elif t[i] in dic.values():             flag=False             break         else:             dic[s[i]]=t[i]     return flag s,t=input(),input() m,n=len(s),len(t) count=0 for i in range(m-n+1):     substr=s[i:i+n]     if Similar(substr,t,n):         count+=1 print(count) ac 83%
点赞 回复 分享
发布于 2018-09-09 21:25
也是83 #include <iostream> #include <vector> #include <map> using namespace std; int solve(string S,string T) {     int num=0;          for(int i=0;i<=int(S.size()-T.size());i++)     {         map<char,char> m1;         map<char,char> m2;                  auto tmp=S.substr(i,T.size());         bool flag=true;         for(int j=0;j<T.size();j++)         {             if(m1.count(tmp[j]))             {                 if(m1[tmp[j]]!=T[j])                 {                     flag=false;                     break;                 }             }             else             {                 if(m2.count(T[j]))                 {                     if(m2[T[j]]!=tmp[j])                     {                         flag=false;                         break;                     }                 }                 else                 {                     m1[tmp[j]]=T[j];                     m2[T[j]]=tmp[j];                 }             }         }         if(flag)         {             num++;         }     }     return num; } int main() {     int res;     string _S;     getline(cin,_S);     string _T;     getline(cin,_T);          res=solve(_S,_T);     cout<<res<<endl;          return 0;      }
点赞 回复 分享
发布于 2018-09-09 21:29
同 python 75%,有 python AC 的吗?尤其 KMP 怎么设计转移函数?
点赞 回复 分享
发布于 2018-09-09 23:41

相关推荐

只写bug的程序媛:人家说一本以上,不是及以上
点赞 评论 收藏
分享
hanliu:1. 排版与格式问题字体与对齐问题:标题和内容的字体大小差异不够明显,无法迅速吸引目光。某些文字看起来有些拥挤(比如校园经历中的“班委成员”部分)。2. 内容逻辑性模块顺序问题:实习经历放在较靠后的位置,实际上这部分内容对应聘来说更重要,建议提前突出。细节表述不够突出:比如教育背景部分的专业课程仅仅列出名字,没有说明自己在这些课程中表现如何或者掌握了什么技能,缺乏量化描述。多余内容:例如“班委成员”和“宣传委员”这类校园经历,叙述过于普通,缺乏和岗位相关的实质性贡献。,建议简写。3. 措辞专业性表达不够精准:例如“协助班长与团支书更好地为同学服务”显得较为笼统,没有实际成果的体现。用词重复:如“学习了焊接”“学习了光检”等重复词语较多,缺乏丰富的动词来展示个人能力(如“负责”“优化”“改进”等)。技能展示不足:虽然列出了UG和CAD证书,但没有明确提到这些技能如何在实际工作中发挥作用。4. 技能匹配度技能深度不足:虽然列出了掌握的软件和技术,但没有描述技能水平(如“熟练掌握”“精通”),也没有具体案例支持这些技能。缺乏岗位导向性:比如针对机械设计与制造方向,实习经历提到了“E6尾灯项目”,但没有详细说明自己在其中的技术贡献,可能会显得经验描述泛泛而谈。5. 自我评价问题表达空泛:如“具有良好的沟通协调能力”“责任心强”之类的描述太常见,没有让人眼前一亮的特点。缺乏成果支持:自我评价中的能力没有用具体项目、经历或成就来验证,可信度较弱。 兄弟加油
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务