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

Google Onsite面经

 
🔗
松岩 2018-2-8 05:33:50 | 只看该作者
全局:
扫地机器人啊
回复

使用道具 举报

🔗
penggeqiang 2018-2-8 05:49:03 | 只看该作者
全局:
扫地机器人挺好玩的。oc写的,我抛砖,
  1. - (BOOL) needClean:(int) i j:(int) j
  2. {
  3.     NSString *k = [NSString stringWithFormat:@"%d %d", i, j];
  4.     if([rh valueForKey:k] == nil)
  5.         return true;
  6.     return false;
  7. }
  8. - (void) markClean:(int) i j:(int)j value:(int) v
  9. {
  10.     NSString *k = [NSString stringWithFormat:@"%d %d", i, j];
  11.     NSNumber *n = [NSNumber numberWithInt:v];
  12.     [rh setObject:n forKey:k];
  13. }
  14. - (BOOL) move
  15. {
  16.     if([robot move]){
  17.         if(bdir == 0){
  18.             bi--;
  19.         }else if(bdir == 1){
  20.             bj++;
  21.         }else if(bdir == 2){
  22.             bi++;
  23.         }else{
  24.             bj--;
  25.         }
  26.         [self markClean:bi j:bj value:1];
  27.         return true;
  28.     }else{
  29.         [self markClean:bi j:bj value:2];
  30.     }
  31.     return false;
  32. }
  33. - (BOOL) needCleanForNext
  34. {
  35.     int i = bi, j = bj;
  36.     if(bdir == 0){
  37.         i--;
  38.     }else if(bdir == 1){
  39.         j++;
  40.     }else if(bdir == 2){
  41.         i++;
  42.     }else{
  43.         j--;
  44.     }
  45.     return [self needClean:i j:j];
  46. }
  47. - (void) dfs
  48. {
  49.     if([self needCleanForNext] && [self move]){
  50.         [self dfs];
  51.     }
  52.     [self turnLeft];
  53.     if([self needCleanForNext] && [self move]){
  54.         [self dfs];
  55.     }
  56.    
  57.     [self turnLeft];
  58.     [self turnLeft];
  59.     if([self needCleanForNext] && [self move]){
  60.         [self dfs];
  61.     }
  62.    
  63.    
  64.     [self turnLeft];
  65.     [self turnLeft];
  66.     [self turnLeft];
  67.     [self move];
  68.     [self turnLeft];
  69.     [self turnLeft];
  70. }
  71. - (void) turnLeft
  72. {
  73.     bdir--;
  74.     if(bdir < 0)
  75.         bdir = 3;
  76.     [robot turnLeft:1];
  77. }
  78. - (void) cleanRoom
  79. {
  80.     [self markClean:bi j:bj value:1];
  81.     [self dfs];
  82.     [robot print];
  83. }
  84. - (void) testRobot
  85. {
  86.     bi = 0, bj = 0, bdir = 0;
  87.     robot = [[Robot alloc] init];
  88.     rh = [NSMutableDictionary dictionary];
  89.     [self cleanRoom];
  90. }
复制代码
回复

使用道具 举报

🔗
 楼主| lyt-09 2018-2-8 07:09:39 | 只看该作者
全局:
penggeqiang 发表于 2018-2-8 05:49
扫地机器人挺好玩的。oc写的,我抛砖,

给你赞一个!
回复

使用道具 举报

🔗
redday91 2018-2-8 07:18:58 | 只看该作者
全局:

谢谢楼主分享
回复

使用道具 举报

🔗
killer1nick 2018-2-8 07:55:00 | 只看该作者
全局:
killer1nick,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

🔗
2441081209 2018-2-8 08:57:31 | 只看该作者
全局:
多谢楼主分享~攒人品~
回复

使用道具 举报

🔗
2441081209 2018-2-8 09:07:42 | 只看该作者
全局:
求问哪里有扫地机器人的题目和code呀~
回复

使用道具 举报

🔗
hyzyx 2018-2-8 10:23:47 | 只看该作者
全局:
看看隐藏内容
回复

使用道具 举报

🔗
 楼主| lyt-09 2018-2-8 10:48:19 | 只看该作者
全局:
2441081209 发表于 2018-2-8 09:07
求问哪里有扫地机器人的题目和code呀~

我写在补充内容上了。。。别人写的code就在222楼
回复

使用道具 举报

🔗
lightwindy 2018-2-8 12:29:06 | 只看该作者
全局:
面试题好难啊, 楼主厉害!
回复

使用道具 举报

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

本版积分规则

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