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

[找工就业] 脸瘦家 DE L5 VO后的 Feedback

🔗
柯基101 2020-8-2 05:24:23 | 只看该作者
全局:
本帖最后由 Shubin_ren 于 2020-8-2 05:27 编辑
李浩泉 发表于 2020-8-2 05:09
不需要思路,需要code,你把code发一份给大家学习学习。
. check 1point3acres for more.
不废话,咱们直接发code,清楚干脆。

我用c++给你写一段好了
前面输入转成两个string vector 不用多说了吧?
现在有v1 代表对照组,v2代表验证组,长度l1, l2
int index1 = 0, index2=0;
set<string> used;
while(index1 < l1 && index2 < l2){
if(v1[index1] == v2[index2]) {.1point3acres
  if (used.find(v1[index1]) !=used.end()){
   break;
  } else {
.--   index2++;
  } }  . 1point 3 acres
used.insert(v1[index1]);. Χ
index1++;
}

if(index2 == l2) return true;
return false;
.1point3acres. 1point 3acres
回复

使用道具 举报

🔗
 楼主| 李浩泉 2020-8-2 05:26:28 | 只看该作者
全局:
本帖最后由 李浩泉 于 2020-8-2 05:32 编辑
Shubin_ren 发表于 2020-8-2 05:24
我用c++给你写一段好了. From 1point 3acres bbs
前面输入转成两个string vector 不用多说了吧?
现在有v1 代表对照组,v2代表验 ...

能写Python吗?我不会C++,没学过啊,这点Python还是为了面试才临时刷题自学的。
你的C++代码,在CoderPad上没通过,大家谁给看看解释解释,是我运行错了吗?另外这个代码,看着也不美观简洁啊。-baidu 1point3acres

  1. int index1 = 0, index2=0;. Χ
  2. set<string> used;.
  3. while(index1 < l1 && index2 < l2){
  4. if(v1[index1] == v2[index2]) {
  5.   if (used.find(v1[index1]) !=used.end()){
  6.    break;
    .
  7. } else
    .1point3acres
  8.   index2++;
  9. }
  10.     index1++;
  11.     used.insert(v1[index1]);
  12. }
  13. .google  и
  14. if(index2 == l2) return true;
  15. return false;
复制代码

..
回复

使用道具 举报

🔗
柯基101 2020-8-2 05:31:34 | 只看该作者
全局:
李浩泉 发表于 2020-8-2 05:26. Χ
能写Python吗?我不会C++,没学过啊,这点Python还是为了面试才临时刷题自学的。

你把vector看成list,set看成{}不是一样么
回复

使用道具 举报

🔗
柯基101 2020-8-2 05:36:16 | 只看该作者
全局:
李浩泉 发表于 2020-8-2 05:26
能写Python吗?我不会C++,没学过啊,这点Python还是为了面试才临时刷题自学的。
你的C++代码,在CoderP ...

手打了,少了个括号,你再看看
回复

使用道具 举报

🔗
柯基101 2020-8-2 05:44:19 | 只看该作者
全局:
李浩泉 发表于 2020-8-2 05:26
能写Python吗?我不会C++,没学过啊,这点Python还是为了面试才临时刷题自学的。
你的C++代码,在CoderP ...

    // std::vector<string> v1 = {"x", "y", "x"};
    // std::vector<string> v2 = {"y", "x"};
    int index1 = 0;
    int index2 = 0;
    int l1 = v1.size();.google  и
    int l2 = v2.size();
    unordered_set<string> used;
    while(index1 < l1 && index2 < l2){
        if(v1[index1] == v2[index2]) {
            if (used.find(v1[index1]) !=used.end()){
                break;
            } else {
                index2++;. check 1point3acres for more.
            }
        }  
        used.insert(v1[index1]);
        index1++;
    }.--

    if(index2 == l2) {. ----
        return true;.
    }
    return false;
回复

使用道具 举报

🔗
 楼主| 李浩泉 2020-8-2 05:51:24 | 只看该作者
全局:
本帖最后由 李浩泉 于 2020-8-2 06:08 编辑



FB给的方法和热心网友的建议有问题,也许是我理解错了?

我的方法可以通过:assert words_order('x x', ['x', 'x']) == False,FB和网友的方法好像不行。 ..

我的字典法也有问题,遇到多个相同数值的时候,应该取第一个index,但是字典法会覆盖,最后字典中存储的是最后一个index,不过很好解决,在循环中加个条件就行了。

. ----

本帖子中包含更多资源

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

x
回复

使用道具 举报

🔗
 楼主| 李浩泉 2020-8-2 05:56:39 | 只看该作者
全局:
热心网友给的这个方法不行,会报错

Traceback (most recent call last):
  File "/home/coderpad/solution.py", line 30, in <module>
    assert words_order('x x', ['x', 'x']) == False. ----
AssertionError


  1. def words_order(text: str, words: list) -> bool:
  2.     wordSet = set(words)
  3.     return [x for x in text.split() if x in wordSet] == words
复制代码
. 1point3acres

. 1point3acres


本帖子中包含更多资源

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

x
回复

使用道具 举报

🔗
 楼主| 李浩泉 2020-8-2 05:59:37 | 只看该作者
全局:
脸书SDE给的这个就更不对了

  1. def words_order(text: str, words: list) -> bool:
  2.     return [x for x in text.split() if x in words] == words
复制代码
. 1point 3 acres


一样的错误:

File "/home/coderpad/solution.py", line 29, in <module>
    assert words_order('x x', ['x', 'x']) == False
AssertionError
. .и


本帖子中包含更多资源

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

x
回复

使用道具 举报

🔗
柯基101 2020-8-2 06:00:51 | 只看该作者
全局:
李浩泉 发表于 2020-8-2 05:51
这道题好像我的方法是正确的。FB给的方法和热心网友的建议有问题,也许是我理解错了?

我的方法可以 ...

你的代码对于这个情况是错的

'x y x' ['y','x'] 应该输出false

评分

参与人数 1大米 +1 收起 理由
李浩泉 + 1 已经更新了,谢谢!

查看全部评分

回复

使用道具 举报

全局:
gongchen 发表于 2020-08-01 11:06:54
楼主你看看这个答案的时间复杂度是不是也是和你两个循环一样的 n平方时间和n空间,但是其实可以很简单地优化到n时间和n空间。

x in words
不对吧!我感觉是需要dict过一遍text的,只不过所有的词只记第一个index,因为题目中说可能重复。所以那个简洁的答案虽然只有一行,但是没有考虑这个情况。例如,text=‘hi world I’m here world’, words=[world here]应该return True, 但是那一行的代码应该return False吧!

评分

参与人数 2大米 +2 收起 理由
gongchen + 1 一开始只看了时空复杂度没看答案对错
李浩泉 + 1 你的分析非常正确!!!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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