📣 独立日限时特惠: VIP通行证立减$68
楼主: Smilenceyu
跳转到指定楼层
上一主题 下一主题
收起左侧

[高频题] 讨论两个面经题

🔗
tchhh 2021-3-28 16:13:28 | 只看该作者
全局:
Smilenceyu 发表于 2021-3-25 14:05
就是把等号左右两边分开 然后把每个变量换到左边取负, 并且把其他变量都换到右边 这样每个变量都有会有几 ...

能否求一个Java版本的解答,我试着写了下还是没法处理。会持续加米。
回复

使用道具 举报

🔗
gavin5566 2021-5-26 00:25:29 | 只看该作者
全局:
Smilenceyu 发表于 2021-3-25 13:27
不需要建图,也不需要高斯。我当时后来自己写了下ruby代码,就是字符串parse然后每 ...
thank you!
回复

使用道具 举报

🔗
西子 2021-5-31 08:52:27 | 只看该作者
全局:
不知道小帅 发表于 2021-1-25 20:09
第一个我觉得greedy是更好的解法啊。第二个的话,感觉常规是高斯消元。

你好! 能详细说一下greedy解法么? 多谢多谢
回复

使用道具 举报

🔗
cacasi 2021-6-29 00:26:09 | 只看该作者
全局:
所以这题目有没有java的解法,哪个好心人贴一下
回复

使用道具 举报

全局:
I cam up with the below. Not sure if this covers all the use cases. Rice if this helps
  1. public void run() {
  2.         String text = "CDFGAGB";
  3.         String pattern = "*A*";
  4.         System.out.println(patternMatch(text, pattern));
  5.     }
  6.    
  7.     public int patternMatch(String s, String pattern) {
  8.         String[] patternList = pattern.split("\\*");
  9.         
  10.         //for (int i = 0; i < patternList.length; i++) {
  11.             System.out.println(patternList.length);
  12.         //}
  13.         
  14.         if (patternList.length == 0) return 0;
  15.         if(patternMatch(s, patternList, 0))
  16.             return getIndex(s, patternList[0]);
  17.         else return -1;
  18.             
  19.     }
  20.    
  21.     public boolean patternMatch(String s, String[] pattern, int index) {
  22.         while (index < pattern.length && pattern[index] == "") index++;
  23.         if (index == pattern.length) return true;
  24.         
  25.         int patIndex = getIndex(s, pattern[index]);
  26.         
  27.         if (patIndex == -1) return false;
  28.         
  29.         if (index == pattern.length-1) return true;
  30.         if (patIndex+pattern[index].length() >= s.length()) return false;
  31.         
  32.         return patternMatch(s.substring(patIndex+pattern[index].length()), pattern, index+1);
  33.     }
  34.    
  35.     public int getIndex(String s, String pattern) {
  36.         int m = s.length();
  37.         int n = pattern.length();
  38.         
  39.         for (int i = 0; i <= m-n; i++) {
  40.             boolean notMatch = false;
  41.             for (int j = 0; j < n; j++) {
  42.                 if (s.charAt(i+j) != pattern.charAt(j)) {
  43.                     notMatch = true;
  44.                     break;
  45.                 }
  46.             }
  47.             if (!notMatch) return i;
  48.         }
  49.         
  50.         return -1;
  51.     }
复制代码
回复

使用道具 举报

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

本版积分规则

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