触宝第一题,那个判断子串的(java版)


import java.util.Scanner;

public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {

int n = Integer.parseInt(sc.nextLine());
String[] arr = new String[n];
for (int i = 0; i < n; i++) {
arr[i] = sc.nextLine();
}
int m = Integer.parseInt(sc.nextLine());
for (int i = 0; i < m; i++) {
String str = sc.nextLine();
int count = 0;
for (int j = 0; j < n; j++) {
if (arr[j].contains(str)) {
++count;
}
}

System.out.println(count);
}
}
}
}

提交就AC,不知道为啥
至于第二题,强烈怀疑题有问题。我怎么看都是31.83
接受反驳,希望我错了~

#Java工程师#
全部评论
没有两道AC感觉 完全没机会面试
点赞 回复 分享
发布于 2017-09-05 21:51
第一次发帖,代码区和文字去反了……
点赞 回复 分享
发布于 2017-09-05 21:24
我也是这么AC的,不知道大家为啥都不行。。。
点赞 回复 分享
发布于 2017-09-05 21:37
第二题,90分钟时间也整不出,想的是用斜率做,结果数学方面知识忘记太多,根本整不出啊
点赞 回复 分享
发布于 2017-09-05 21:55
在做题的始终是在想将所有的输出结果保存了然后最后一次性输出,结果始终输出不了。现在就直接将输出改为cout输出了。现在虽然本地可以AC了,但是就想问问大佬们,我对多case的处理是否正确。 #include<iostream> #include<string> #include<vector> using namespace std; bool isMatch(const string &dict, const string &example); vector<int> getNext(const string &needle, int m, vector<int> next); int main() { while (cin) //此处是否正确? { int N; cin >> N; vector<string> dict(N, ""); for (int i = 0;i<N;i++) { cin >> dict[i]; } int M; cin >> M; vector<string> example(M, ""); for (int i = 0;i<M;i++) { cin >> example[i]; } for (int i = 0;i<M;i++) { int count = 0; for (int j = 0;j<N;j++) { if (isMatch(dict[j], example[i])) { count++; } } cout << count << endl; //输出 } } return 0; } //KMP匹配算法 bool isMatch(const string &dict, const string &example) { int n = dict.size(), i = 0; int m = example.size(), j = 0; if (m>n) return false; if (n == 0 || m == 0) return true; vector<int> next(m); next = getNext(example, m, next); while (j<m&&i<n) { if ((0>j) || dict[i] == example[j]) { i++; j++; } else { j = next[j]; } } return j == m ? true : false; } vector<int> getNext(const string &needle, int m, vector<int> next) { int t = -1; next[0] = -1; int j = 0; while (j<m - 1) { if (0>t || needle[j] == needle[t]) { j++; t++; next[j] = (needle[j] != needle[t] ? t : next[t]); } else t = next[t]; } return next; }
点赞 回复 分享
发布于 2017-09-05 22:15
兄弟,多交流
点赞 回复 分享
发布于 2017-09-06 11:15
好像不是这么简单的输入输出吧。
点赞 回复 分享
发布于 2017-09-08 10:03

相关推荐

Yushuu:你的确很厉害,但是有一个小问题:谁问你了?我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了😆
点赞 评论 收藏
分享
沉淀一会:1.同学你面试评价不错,概率很大,请耐心等待; 2.你的排名比较靠前,不要担心,耐心等待; 3.问题不大,正在审批,不要着急签其他公司,等等我们! 4.预计9月中下旬,安心过节; 5.下周会有结果,请耐心等待下; 6.可能国庆节前后,一有结果我马上通知你; 7.预计10月中旬,再坚持一下; 8.正在走流程,就这两天了; 9.同学,结果我也不知道,你如果查到了也告诉我一声; 10.同学你出线不明朗,建议签其他公司保底! 11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
评论
点赞
2
分享
牛客网
牛客企业服务