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

谷歌电面

全局:

2018(7-9月) 码农类General 硕士 全职@google - 内推 - 技术电面  | | Other | 在职跳槽

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

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
一上来先给段java code把一个string array里的元素+成一个string,问有什么改进
答用stringbuilder。。。

然后正题:

给两个string src和dst,返回能否通过不限次数的转换把src变成dst
规则:
每次转换将src里的所有同一个字符转换成另一个字符,比如: abaca -> e
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
traint,不要写完了再改code
对代码整洁要求要很高,尽量简洁
不要因为miss了什么就慌张地写新code补救,先表达清楚,不然面试官会随时质疑你写的每一行代码




评分

参与人数 6大米 +54 收起 理由
wulaoshi250 + 2 给你点个赞!
猫小白 + 3 给你点个赞!
yoyou1988 + 3 给你点个赞!
jaedong + 1 给你点个赞!
VolEmma + 5 引人深思

查看全部评分


上一篇:Twitter 最近OA分享
下一篇:Akuna Python Junior Dev OA 120min 三道题
推荐
wisdompeak2 2018-9-20 05:30:23 | 只看该作者
全局:
贴一下我的解答:
  1. bool check(string a, string b)
  2. {
  3.     if (a.size()!=b.size()) return false;
  4.    
  5.     unordered_map<char,char>Map;
  6.     for (int i=0; i<a.size(); i++)
  7.     {
  8.         if (Map.find(a[i])==Map.end())
  9.             Map[a[i]]=b[i];
  10.         else if (Map[a[i]]!=b[i])
  11.             return false;
  12.     }
  13.    
  14.     unordered_set<char>SetA;
  15.     unordered_set<char>SetB;
  16.     int count = 0;
  17.     for (int i=0; i<a.size(); i++)
  18.     {
  19.         SetA.insert(a[i]);
  20.         SetB.insert(b[i]);
  21.         if (Map[a[i]]!=a[i]) count++;
  22.     }
  23.     if (SetA.size()==26 && SetB.size()==26 && count>0)
  24.         return false;
  25.     else
  26.         return true;
  27. }
复制代码

三个判据:
1. 两个字符串大小不一样,返回false
2. 从a->b的单向映射Map出现冲突,返回false
3.两个字符串都有26个字符,且Map不冲突,但是存在Map[x]!=x,说明必定有成环的映射关系.这种情况下,因为无法借助第三变量(26个字母都用完了),所以返回false
其他情况都返回true

评分

参与人数 4大米 +16 收起 理由
AlexJin + 5 牛逼
gunduzi + 1 赞一个
熊猫杀很大缺积分 + 5 很有用的信息!
hlckl123456 + 5 给你点个赞!

查看全部评分

回复

使用道具 举报

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

评分

参与人数 1大米 +5 收起 理由
熊猫杀很大缺积分 + 5 很有用的信息!

查看全部评分

回复

使用道具 举报

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

使用道具 举报

🔗
Jing666 2018-9-16 04:53:20 | 只看该作者
全局:
想问下这道题是LC的题么?楼主是怎么做的?
回复

使用道具 举报

🔗
UUOlidd 2018-9-16 05:36:39 | 只看该作者
全局:
像是find isomorphic string的变种?
回复

使用道具 举报

🔗
红A 2018-9-16 06:02:10 | 只看该作者
全局:
提供一个我的想法,把相同character出现的位置算成一个group,比较所有group是否一致。同时查看group size等于26则违反规则。


  1. import java.util.*;

  2. public class ChangeSameCharacter {
  3.     public static void main(String[] args) {
  4.         System.out.println(isValidTransfer("abaca", "ebece"));
  5.         System.out.println(isValidTransfer("abba", "baab"));
  6.         System.out.println(isValidTransfer("abcdefghijklmnopqrstuvwxyza", "abcdefghijklmnopqrstuvwxyzzb"));
  7.     }

  8.     //here we assume all lowercase characters
  9.     public static boolean isValidTransfer(String src, String dst) {
  10.         if (src.length() != dst.length()) return false;
  11.         if (src.equals(dst)) return true;
  12.         if (!positionMatch(src, dst)) return false;
  13.         return true;
  14.     }


  15.     public static boolean positionMatch(String src, String dst) {
  16.         Map<Character, List<Integer>> map1 = new HashMap<>();
  17.         Map<Character, List<Integer>> map2 = new HashMap<>();
  18.         for (int i = 0; i < src.length(); i++) {
  19.             char c = src.charAt(i);
  20.             map1.putIfAbsent(c, new ArrayList<>());
  21.             map1.get(c).add(i);

  22.             char c2 = dst.charAt(i);
  23.             map2.putIfAbsent(c2, new ArrayList<>());
  24.             map2.get(c2).add(i);
  25.         }
  26.         if (map1.size() == 26 || map2.size() == 26) return false;
  27.         Set<String> positionSet = new HashSet<>();
  28.         for (char c: map1.keySet()) positionSet.add(map1.get(c).toString());
  29.         for (char c: map2.keySet()) {
  30.             if (!positionSet.contains(map2.get(c).toString())) return false;
  31.             else positionSet.remove(map2.get(c).toString());
  32.         }
  33.         return positionSet.size() == 0;
  34.     }
  35. }

复制代码



补充内容 (2018-9-19 12:18):
这个思路是错的,大家不要看这个。。看lc isomorphic的思路

评分

参与人数 1大米 +5 收起 理由
Reynolds + 5 给你点个赞!

查看全部评分

回复

使用道具 举报

全局:
应该和isomorphic string差不多,区别在于abba -> bbbb这种应该return true?
那么应该比isomorphic还简单,一个map看相同character在另一个string里面对应的字符是不是相同就可以了?

评分

参与人数 1大米 +5 收起 理由
UUOlidd + 5 欢迎来一亩三分地论坛!

查看全部评分

回复

使用道具 举报

🔗
 楼主| 贼老窝 2018-9-16 07:52:43 | 只看该作者
全局:
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
回复

使用道具 举报

🔗
 楼主| 贼老窝 2018-9-16 07:56:06 | 只看该作者
全局:
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
回复

使用道具 举报

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

使用道具 举报

🔗
foryousee 2018-9-16 10:12:27 | 只看该作者
全局:
贼老窝 发表于 2018-9-16 07:56
是的一个map可以,但是还要考虑借一还一的情况,如果string里面用完了26个字母而又需要一个不同的字母完 ...

那用int array来管理就好了,反正长度已经是固定的了
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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