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

Google电面求大米

🔗
 楼主| asyouknow 2016-11-17 12:50:32 | 只看该作者
全局:
jizhoutong 发表于 2016-11-17 02:11
toCharArray这个函数 让用吗

是个linked list,用现成函数就没意思了
回复

使用道具 举报

🔗
 楼主| asyouknow 2016-11-17 12:52:20 | 只看该作者
全局:
zhan1612 发表于 2016-11-17 12:37
我写了下第一题, 大家看下还有没有什么Corner case没有考虑到。

看起来不错。
“3.0”和“3”呢?
回复

使用道具 举报

🔗
zhan1612 2016-11-17 13:11:56 | 只看该作者
全局:
asyouknow 发表于 2016-11-17 12:52
看起来不错。
“3.0”和“3”呢?

我又改了下, 但是感觉代码有点长, 有没有更好的办法那?
  1. int compare(string num1, string num2){
  2.         int flag = 0;
  3.         int index = 0;
  4.         bool point = false;
  5.         bool minus = false;
  6.         if(num1[index] == '-' && num2[index] == '-'){
  7.                 minus = true;
  8.                 index++;
  9.         }
  10.         else if(num1[index] == '-')
  11.                 return -1;
  12.         else
  13.                 return 1;

  14.         while(index < min(num1.length(), num2.length())){
  15.                 if(num1[index] != num2[index] && num1[index] == '.'){
  16.                         flag = -1;
  17.                         point = true;
  18.                         break;
  19.                 }
  20.                 else if(num1[index] != num2[index] && num2[index] == '.'){
  21.                         flag =  1;
  22.                         point = true;
  23.                         break;
  24.                 }
  25.                 else if(flag !=0 && num1[index] > num2[index])
  26.                         flag = 1;
  27.                 else if(flag !=0 && num1[index] < num2[index])
  28.                         flag = -1;
  29.                 else;
  30.                 index++;
  31.         }
  32.         if(point == false && num1.length() > num2.length()){
  33.                 if(num1[index++] == '.'){
  34.                         while(index < num1.length()&& num1[index] == '0')
  35.                                 index++;
  36.                         flag = index == num1.length()? 0 : 1;
  37.                 }
  38.                 else
  39.                         flag = 1;
  40.         }
  41.         if(point == false && num1.length() < num2.length()){
  42.                 if(num2[index++] == '.'){
  43.                         while(index < num2.length()&& num2[index] == '0')
  44.                                 index++;
  45.                         flag = index == num2.length()? 0 : -1;
  46.                 }
  47.                 else
  48.                         flag = -1;
  49.         }

  50.         return minus==true? -flag : flag;

  51. }
复制代码
回复

使用道具 举报

🔗
 楼主| asyouknow 2016-11-17 14:30:08 | 只看该作者
全局:
zhan1612 发表于 2016-11-17 13:11
我又改了下, 但是感觉代码有点长, 有没有更好的办法那?

我不是高手,觉得你写的已经不错了。这题思路很简单,写起来有点烦。
回复

使用道具 举报

🔗
helloworld00 2016-11-17 19:46:25 | 只看该作者
全局:
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Popular Interview Questions from Top Companies
回复

使用道具 举报

🔗
helloworld00 2016-11-17 19:48:12 | 只看该作者
全局:
helloworld00 发表于 2016-11-17 19:46
哇,感谢指出corner case

确实后面得加个判断

假设同样的数都为True
回复

使用道具 举报

🔗
yydcool 2016-11-17 23:55:20 | 只看该作者
全局:
楼主最长重复字串是给的O(n)算法吗
回复

使用道具 举报

🔗
 楼主| asyouknow 2016-11-18 14:30:31 | 只看该作者
全局:
yydcool 发表于 2016-11-17 23:55
楼主最长重复字串是给的O(n)算法吗

没有,n^2。怎么做O(n)啊?求教!
回复

使用道具 举报

🔗
yydcool 2016-11-19 11:42:48 | 只看该作者
全局:
后缀树,搜longest repeated substring
回复

使用道具 举报

🔗
zhan1612 2016-11-19 12:36:47 | 只看该作者
全局:
麻烦问一下楼主第二题, 第一题是不是就是找longest suffix, 是剩下的prefix?
如果不是的话那像"abcabd"这种应该返回什么?还是返回“ab”?
回复

使用道具 举报

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

本版积分规则

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