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

谷歌电面

全局:

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

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

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

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

然后正题:

给两个string src和dst,返回能否通过不限次数的转换把src变成dst
规则:
每次转换将src里的所有同一个
您好!
本帖隐藏的内容需要积分高于 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面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

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