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

1.25 Google 加面跪经

🔗
zatarratw 2016-1-27 06:09:57 | 只看该作者
全局:
farm 发表于 2016-1-27 05:44
想问一下,你是怎么在HackerRank上看到这道题的啊?
HackerRank的题目可以搜么?还是只能是random的chal ...

之前我朋友參加的challenge,找我支援的時候看到的。應該還是搜得到,剛剛試過,Google: "hackerrank magic string"就找得到了
回复

使用道具 举报

无效楼层,该帖已经被删除
🔗
zxl9171 2016-1-27 14:40:25 | 只看该作者
全局:
这题好难,求hint
回复

使用道具 举报

全局:
是不是可以从她给出的Magic string 开始结合count string继续生成? query 不就是遍历吗?难道有trick?
回复

使用道具 举报

🔗
zxl9171 2016-1-27 15:16:11 | 只看该作者
全局:
问题生成的速度比原串要慢,怎么能生成下去啊。。。。
回复

使用道具 举报

🔗
stellari 2016-1-27 19:58:59 | 只看该作者
全局:
生成倒是不难。如果已生成长为len的序列,query也不难。但是,如果follow up是问你在不生成magic序列的情况下,仅用O(1)时间(或者最起码是sublinear时间)完成query,有没有可能做出来呢?

补一个生成magic string的代码:

string getMagicString(int len) {
    string res(len, '1');
    if (len < 2) return res;
    res[1] = '2';

    int iCount = 1, iStr = 1; // Pointers in the 'count' and 'string' sequence
    char curChar = '2', nextChar = '1';
    while (iStr < len) {
        int count = res[iCount++] - '0'; // Get the current count;
        for (int i = 0; i < count; ++i) { // Append to the ‘string’ sequence
            res[iStr++] = curChar;
            if (iStr == len) break;
        }
        swap(curChar, nextChar);    // Flip the current character, e.g. '1'->'2'
    }
    return res;
}
回复

使用道具 举报

全局:
Good code 如果可以用extra memory的话 生成magic string 同时就建一个count array。但是我觉得Magic string 本身就是count 不知道怎么用这个特性。
回复

使用道具 举报

🔗
zxl9171 2016-1-28 02:19:33 | 只看该作者
全局:
stellari 发表于 2016-1-27 19:58
生成倒是不难。如果已生成长为len的序列,query也不难。但是,如果follow up是问你在不生成magic序列的情况 ...

懂了,反过来generate。。。思维定势了。。。谢谢
回复

使用道具 举报

🔗
johnjavabean 2016-2-2 16:45:57 | 只看该作者
全局:
stellari 发表于 2016-1-27 19:58
生成倒是不难。如果已生成长为len的序列,query也不难。但是,如果follow up是问你在不生成magic序列的情况 ...

leetcode discussion区的大神们居然都在混一亩三分地...
回复

使用道具 举报

🔗
zhan8803705 2016-10-5 22:59:34 | 只看该作者
全局:
stellari 发表于 2016-1-27 19:58
生成倒是不难。如果已生成长为len的序列,query也不难。但是,如果follow up是问你在不生成magic序列的情况 ...

你的code有bug,会生成 “12221.....” 而不是"1221....."

前三个字符应该要特别处理
回复

使用道具 举报

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

本版积分规则

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