12
返回列表 发新帖
楼主: skywalkeroli
跳转到指定楼层
上一主题 下一主题
收起左侧

狗家新鲜出炉电面面筋

🔗
雨雪霏霏 2019-3-12 09:28:32 | 只看该作者
全局:
Random note 写了一下 没有跑可能有runtime error 请教一下思路是不是对的?
  1. Map<String, boolean> seen = new HashMap<>();
  2. Set<Integer> used = new HashSet<>();
  3. Map<Integer, List<Integer>> map = new HashMap<>();
  4. boolean[] checked;
  5. int[] tar;
  6. public boolean randomNote(List<String> l, String target) {
  7.         if (target.length() > l.size()) return false;
  8.         checked = new boolean[target.length()];
  9.         int tari = 0;
  10.         for (char c : target.toCharArray()) {
  11.         int dif = c - ‘a’;
  12.         if (!map.containsKey(dif)) map.put(dif, new LinkedList<>());
  13.         tar[tari] = dif;
  14. }
  15. for (int i = 0; i < l.size(); i++) {
  16.         String s = l.get(i);
  17.         for (char c : s.toCharArray()) {
  18.         int d = c - ‘a’;
  19.         if (map.containsKey(d)) map.get(d).put(i);
  20. }
  21. }
  22. return dfs(0);
  23. }

  24. private boolean dfs(int s) {
  25.         if (s > tar.length) return true;
  26.         String key = format(s);
  27.         if (seen.containsKey(key)) return seen.get(key);

  28.         for (int toUse : map.get(tar[s])) {
  29.         if (!seen.contains(toUse)) {
  30.         used.add(toUse);
  31.         if (dfs(s + 1)) {
  32.                 seen.put(key, true);
  33.                 used.remove(toUse);
  34. return true;
  35. }
  36.         used.remove(toUse);
  37. }
  38. }
  39. map.put(key, false);
  40. return false;
  41. }

  42. private String format(int s) {
  43.         StringBuilder sb = new StringBuilder();
  44.         for (int i = s; i < tar.length; i++) {
  45.         sb.append(tar[i] + “ “ );
  46.         for (int cand : map.get(tar[i])) {
  47.         if (!used.contains(cand)) {
  48.         sb.append(cand + “ “);
  49. }
  50. }
  51. }
  52. return sb.toString();
  53. }
复制代码

补充内容 (2019-3-12 09:29):
不知道为什么格式转化被划掉了。。。大家将就看一下
回复

使用道具 举报

🔗
mmm_ 2019-3-19 09:07:18 | 只看该作者
全局:
谢谢楼主~~~~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表