阿里笔试0901第一题有大佬ac的吗

我用暴力法a了50 有没有优化的方法

#阿里巴巴#
全部评论
import java.util.Scanner; public class ali0901 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); String s1 = sc.nextLine(); String[] t=s1.split(" "); int n=Integer.parseInt(t[0]); int m=Integer.parseInt(t[1]); String s=sc.nextLine(); String y=sc.nextLine(); int res=0; char []arr=s.toCharArray(); char []acc=y.toCharArray(); //其中前面要连续 for(int i=0;i<arr.length;i++){ a:for(int j=i;j<arr.length;j++){ //单字符 if(i==j){ if(y.indexOf(s.charAt(i))!=-1){ res++; } //子字符串 }else{ int a=i,b=j; int fro=-1; int tmp; int k=0; while(a<=b){ tmp=y.indexOf(s.charAt(a),k); //todo:要找下一个字符 if(tmp!=-1&&tmp>fro){ fro=tmp; k=tmp+1; a++; } else continue a; } res++; } } } System.out.println(res); } }
点赞 回复 分享
发布于 2020-09-01 20:21
判断s字串是否是t的子序列的时候,可以将不是子序列的后续字串直接break
点赞 回复 分享
发布于 2020-09-01 20:25
想问下多少能过 有标准吗?
点赞 回复 分享
发布于 2020-09-01 20:33
第二题怎么做呀?
点赞 回复 分享
发布于 2020-09-01 23:20
我用python写的,子串不符合break掉之后,也只过了50%,提示超时。
点赞 回复 分享
发布于 2020-09-02 15:36

相关推荐

去B座二楼砸水泥地:不过也可以理解,这种应该没参加过秋招
点赞 评论 收藏
分享
10-07 23:57
已编辑
电子科技大学 Java
八街九陌:博士?客户端?开发?啊?
点赞 评论 收藏
分享
点赞 2 评论
分享
牛客网
牛客企业服务