今日头条匹配单词怎么做啊?

只想到暴力
全部评论
package _toutiao; import java.util.*; /** * Created by kangqizhou on 2017/3/30. */ public class Main { private static List<String> paragraph = new ArrayList<>(); private static List<String> paragraph2 = new ArrayList<>(); public static void main(String... args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int m = scanner.nextInt(); for (int i = 0; i < n; i++) { String s = scanner.nextLine(); while (s.isEmpty()) s = scanner.nextLine(); paragraph.add(s.toLowerCase()); paragraph2.add(s); } for (int i = 0; i < m; i++) { System.out.println(findResult(scanner.nextLine().toLowerCase())); } } private static String findResult(String str) { String[] strs = str.split(" "); int max = 0; int index = 0; for (int i = index; i < paragraph.size(); i++) { String[] line = paragraph.get(i).split(" "); int result = findSame(strs, line); if (result > max) { index = i; max = result; } } return paragraph2.get(index); } public static int findSame(String array1[], String array2[]) { int result = 0; HashSet<String> hashSet = new HashSet<>(); HashSet<String> hashSet2 = new HashSet<>(); Collections.addAll(hashSet, array1); Collections.addAll(hashSet2, array2); for (String str : hashSet2) { if (hashSet.contains(str)) { result++; } } return result; } } 挺简单的
点赞 回复 分享
发布于 2017-03-30 23:02
倒排索引,key:词语,value是一个hashset,里面存句子的序号
点赞 回复 分享
发布于 2017-03-30 21:53
cpp primer里面有。。。
点赞 回复 分享
发布于 2017-03-30 23:19
暴力
点赞 回复 分享
发布于 2017-03-30 22:26
暴击
点赞 回复 分享
发布于 2017-03-30 22:26
你的题目是啥
点赞 回复 分享
发布于 2017-03-30 21:54
用hash通过的代码: package com.ustc.toutiao; import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Scanner; import java.util.Set; /** * @author kingcong * @version 创建时间:2017年3月30日 下午7:49:44 * 类说明 */ public class Test2 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { String line1 = scanner.nextLine(); String[] line1Array = line1.split(" "); int N = Integer.parseInt(line1Array[0]); int M = Integer.parseInt(line1Array[1]); List<Set<String>> list = new ArrayList<>(); List<String> orignArray = new ArrayList<>(); for (int i = 0; i < N; i++) { Set<String> set = new HashSet<>(); String line = scanner.nextLine(); orignArray.add(line); String[] lineArray = line.split(" "); for (String value : lineArray) { set.add(value); } list.add(set); } List<Set<String>> list2 = new ArrayList<>(); for (int i = 0; i < M; i++) { Set<String> set = new HashSet<>(); String line = scanner.nextLine(); String[] lineArray = line.split(" "); for (String value : lineArray) { set.add(value); } list2.add(set); } List<Integer> countList = new ArrayList<>(); for (Set<String> set : list2) { int currenti = 0; int length = 0; int i = 0; for (Set oldSet : list) { int currentLength = 0; for (Iterator iterator = set.iterator(); iterator.hasNext();) { String string = (String) iterator.next(); if (oldSet.contains(string)) { currentLength++; } } if (length < currentLength) { length = currentLength; currenti = i; } i++; } countList.add(currenti); } for (Integer key : countList) { System.out.println(orignArray.get(key)); } } } }
点赞 回复 分享
发布于 2017-03-30 21:53
就是暴力啊,将每行里面的词做个hash map,然后扫就好了
点赞 回复 分享
发布于 2017-03-30 21:49
你通过率多少啊?
点赞 回复 分享
发布于 2017-03-30 21:49

相关推荐

不愿透露姓名的神秘牛友
06-29 17:30
找实习找着找着就要进入7月了,马上秋招也要开始了,找实习还有意义吗?
绝迹的星:有面就面, 没面上就当日薪4位数大佬免费培训, 面上了再考虑要不要实习
点赞 评论 收藏
分享
06-16 15:04
黑龙江大学 Java
零OFFER战士:另一个版本查看图片
点赞 评论 收藏
分享
06-10 21:15
门头沟学院 Java
宁阿:好多这种没🧠的公司,他们估计都不知道毕业的人不能给安排实习岗
实习吐槽大会
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务