一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 985|回复: 10
收起左侧

find all possible subsequence palindrome for given string

[复制链接] |试试Instant~ |关注本帖
qiaobao 发表于 2015-10-29 11:37:51 | 显示全部楼层 |阅读模式

2015(10-12月) 码农类 硕士 全职@Uber - 猎头 - 技术电面 |Fail在职跳槽

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
45分钟电面,上来先介绍工作经历,聊了聊工作中遇到的难题及应对策略,然后面试官介绍了一下uber的情况,尤其是他们组的情况。然后开始在coderpad.io上答题:
find all possible subsequence palindrome for given string
"cdc" - > ["c", "d", "cc", "cdc"]. 鍥磋鎴戜滑@1point 3 acres

Leetcode上有相关的题,Palindrome Partitioning II, 区别是substring palindrome,而非subsequence。应该还是用dp解决。写了20来分钟,code有bug没找出来。面试官喊停,问有什么问题。聊了聊他们组的技术栈,以及工作强度。面试官表示每周工作50h,仍在平均水平一下,果然是很忙。
鏉ユ簮涓浜.涓夊垎鍦拌鍧.
已跪,后来人记得刷刷这题啊!

附上相关paper一篇,供参考:http://par.cse.nsysu.edu.tw/~algo/paper/paper07/P6.pdf
. more info on 1point3acres.com
abcd1992719g 发表于 2015-10-29 13:40:17 | 显示全部楼层
居然会问这种题...我还是缴械投降吧  TAT
回复 支持 反对

使用道具 举报

dylanoo 发表于 2015-10-29 23:06:02 | 显示全部楼层
用一个hashtable,记录每个char出现次数,然后用类似permutation办法,可以么?
回复 支持 反对

使用道具 举报

haifengc 发表于 2015-10-30 00:23:51 | 显示全部楼层
感觉应该是暴力搜索啊
回复 支持 反对

使用道具 举报

haifengc 发表于 2015-10-30 00:24:26 | 显示全部楼层
dylanoo 发表于 2015-10-29 23:06
用一个hashtable,记录每个char出现次数,然后用类似permutation办法,可以么?
. more info on 1point3acres.com
要保持char的顺序啊
回复 支持 反对

使用道具 举报

pyemma 发表于 2015-10-30 00:32:27 | 显示全部楼层
感觉需要通过改动LCS的那个dp矩阵来做,但是不太确定。
回复 支持 反对

使用道具 举报

likenisha 发表于 2015-11-11 02:13:08 | 显示全部楼层
我擦,暴力豆不会解,比leetcode那道难呐
回复 支持 反对

使用道具 举报

xiaozhuxiaozhu 发表于 2015-11-11 02:45:36 | 显示全部楼层
likenisha 发表于 2015-11-11 02:13
我擦,暴力豆不会解,比leetcode那道难呐

暴力就是 组合所有的words,combination.
然后看谁是palindrome。

补充内容 (2015-11-11 02:52):.鐣欏璁哄潧-涓浜-涓夊垎鍦
好像发现,我没有理解题
回复 支持 反对

使用道具 举报

likenisha 发表于 2015-11-11 06:14:01 | 显示全部楼层
噢,我知道了,这个题暴力法就是subset,看所有subset哪个是palindrome,但是dp应该怎么想,求大神指教
回复 支持 反对

使用道具 举报

tltzhsajsdr 发表于 2015-11-11 07:01:35 | 显示全部楼层
  1. public class test{. 鍥磋鎴戜滑@1point 3 acres

  2.         public static void main(String[] args){
  3.                 System.out.print(test.findsequence("cdc"));
  4.         }

  5.          static List<String> findsequence(String s){
  6.                  int index = 0;.1point3acres缃
  7.                  StringBuffer path = new StringBuffer();
  8.                  Set<String> ret = new HashSet<String>();. 鍥磋鎴戜滑@1point 3 acres
  9.                  helper(s,ret,path,index);. 鍥磋鎴戜滑@1point 3 acres
  10.                  return new ArrayList<String>(ret);
  11.          }
  12.          static void helper(String s, Set<String>ret, StringBuffer path, int index){
  13.                  if(path.length() != 0 && isValid(path) && !ret.contains(path.toString())){
  14.                          ret.add(path.toString());
  15.                  }
  16.                  
  17.                  for(int i = index; i < s.length(); i++){
  18.                          char c = s.charAt(i);
  19.                          path.append(c);
  20.                          helper(s,ret,path,i + 1);
  21.                          path.deleteCharAt(path.length() - 1);
  22.                  }
  23.          }
  24.          static boolean isValid(StringBuffer s){
  25.                  int left = 0;
  26.                  int right= s.length() - 1;
  27.                  while(left < right){
  28.                          if(s.charAt(left) != s.charAt(right)) return false;. from: 1point3acres.com/bbs
  29.                          left++;
  30.                          right--;. 1point 3acres 璁哄潧
  31.                  }
  32.                  return true;
  33.          }
  34. }
复制代码


写了一个dfs版本的, dp实在是想不出来
回复 支持 反对

使用道具 举报

bobzhang2004 发表于 2016-2-9 10:52:20 | 显示全部楼层
这也太难了吧,电面面这个。。。
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-4 14:59

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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