楼主: momo__
跳转到指定楼层
上一主题 下一主题
收起左侧

GOOGLE 二面面经

🔗
lyudison 2015-11-24 01:34:25 | 只看该作者
全局:
写了一个时间复杂度O(n^2)的
int countMaxChunks(string str) {
  int count = 0;
  int i = 0, j = str.size()-1; // scan from the two sides
  int prev_i = i, prev_j = j;
  while(i<j) {
    string chunk1 = str.substr(prev_i, i+1);
    string chunk2 = str.substr(j, prev_j+1);
    if (chunk1==chunk2) {
      count++;
      prev_i = i+1;
      prev_j = j-1;
    }   
    i++;
    j--;
  }
  count *= 2;
  // if odd string
  if (i==j)
    count++;
  // even string and still has chunk left
  else if (prev_i<prev_j)
    count++;
  return count;
}

补充内容 (2015-11-24 01:37):
思想比较简单,但是从string的两边开始,用i和j记录当前scan到的位置,用prev_i和prev_j记录上一次找到chunk的i和j的位置的下一个字符。最后扫到中间判断一下有无多余的chunk。

补充内容 (2015-11-24 01:38):
上面提到的测试都过了
回复

使用道具 举报

🔗
 楼主| momo__ 2015-11-24 01:39:39 | 只看该作者
全局:
lyudison 发表于 2015-11-24 01:34
写了一个时间复杂度O(n^2)的
int countMaxChunks(string str) {
  int count = 0;

我当时也是这思路写的,最后面试官说it should work
回复

使用道具 举报

🔗
lyudison 2015-11-24 02:07:35 | 只看该作者
全局:
momo__ 发表于 2015-11-24 01:39
我当时也是这思路写的,最后面试官说it should work

意思是太渣了吗
回复

使用道具 举报

🔗
 楼主| momo__ 2015-11-24 02:10:20 | 只看该作者
全局:

不知道,还没收到HR的回复
回复

使用道具 举报

🔗
GatorAM 2015-11-24 05:33:59 | 只看该作者
全局:
lyudison 发表于 2015-11-24 01:34
写了一个时间复杂度O(n^2)的
int countMaxChunks(string str) {
  int count = 0;

为啥复杂度是O(n^2). 我觉得是O(n)
回复

使用道具 举报

🔗
lyudison 2015-11-24 09:48:10 | 只看该作者
全局:
GatorAM 发表于 2015-11-24 05:33
为啥复杂度是O(n^2). 我觉得是O(n)

while一层循环,string比较是否相等又是一层。
回复

使用道具 举报

🔗
GatorAM 2015-11-24 11:25:16 | 只看该作者
全局:
lyudison 发表于 2015-11-24 09:48
while一层循环,string比较是否相等又是一层。

哦,酱紫
回复

使用道具 举报

🔗
bobzhang2004 2015-12-4 12:51:28 | 只看该作者
全局:
请问面试官有给hint吗?他期望的时间复杂度是多少呢?
回复

使用道具 举报

🔗
peter_jun 2015-12-13 23:56:42 | 只看该作者
全局:
楼主我也有几个问题。
1。输入一定是palindrome吗?abcbad 这总输入是不是不考虑
2.  输出是最大的chunk数量,对于  ababcabab, 返回一定是5 = (ab)(ab)c(ab)(ab) 还是 = (abab)c(abab)呢
谢谢!

补充内容 (2015-12-13 23:57):
3 =  = (abab)c(abab)
回复

使用道具 举报

🔗
 楼主| momo__ 2015-12-14 00:30:42 | 只看该作者
全局:
peter_jun 发表于 2015-12-13 23:56
楼主我也有几个问题。
1。输入一定是palindrome吗?abcbad 这总输入是不是不考虑
2.  输出是最大的chunk ...

你好, abcbad的话只能把它本身划分为一个大的chunk,所以chunk数量就是1.
ababcabab的话就是返回5.
回复

使用道具 举报

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

本版积分规则

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