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

[CareerCup] 【第三轮】6.16-6.22 CareerCup 1.1

 
🔗
3angFeng945 2014-6-17 11:47:25 | 只看该作者
全局:
本帖最后由 3angFeng945 于 2014-6-18 10:39 编辑

【解题思路】就是最直接的,一个一个比较
【时间复杂度】O(n^2)
【空间复杂度】O(1)
【gist link】https://gist.github.com/5fbaddb1a56ef649e9dd

评分

参与人数 1大米 +7 收起 理由
wrj5518 + 7

查看全部评分

回复

使用道具 举报

🔗
MichaelYC 2014-6-17 11:54:40 | 只看该作者
全局:
【解题思路】
1> 用 Hash Table 记录 String 中的 char; String 中 char 的位置就是 Hash Table 的 Key,char 本身是 Hash Table 的 value;
2> 每次记录之前,用 containValue method 来检验 Hash Table 中是否已经有了这个 Value;
3> 有则为 false;记录到最后一个 char 如果都没有的话,那么返回 true,证明这个 String 是只含有 unique char 的 String。

【时间复杂度】
O(n)

【空间复杂度】
O(1)

【gist link】
https://gist.github.com/Youchen/1596073837940c97a098

---------------Optional,如果觉得test case比较好,欢迎写出来分享----------------------
【test case】
随便自己编了3个 String,写在了mian 里面,不知道这算不算 test case。
Q: 看大家都用256的 Array,我没用这样的方法,难道我想错了。
看下大家的学习一下。


点评

1. your code does not handle the corner case for empty string/null string 2. you can use a hash set for this solution, no need for <key, value> pair here, the key itself is the value.  发表于 2014-6-17 13:24

评分

参与人数 1大米 +7 收起 理由
wrj5518 + 7

查看全部评分

回复

使用道具 举报

🔗
MichaelYC 2014-6-17 11:58:51 | 只看该作者
全局:
3angFeng945 发表于 2014-6-16 22:47
【解题思路】就是最直接的,一个一个比较
【时间复杂度】O(n^2)
【空间复杂度】O(1)

gist 的地址不对啊。
麻烦楼上的兄弟贴一下浏览器地址栏的地址。
谢谢~
回复

使用道具 举报

🔗
MichaelYC 2014-6-17 11:58:56 | 只看该作者
全局:
3angFeng945 发表于 2014-6-16 22:47
【解题思路】就是最直接的,一个一个比较
【时间复杂度】O(n^2)
【空间复杂度】O(1)

gist 的地址不对啊。
麻烦楼上的兄弟贴一下浏览器地址栏的地址。
谢谢~
回复

使用道具 举报

🔗
grassgigi 2014-6-17 13:17:34 | 只看该作者
全局:
本帖最后由 grassgigi 于 2014-6-17 13:29 编辑

【解题思路】用了boolean array for ascii chars
  • 我觉得假设char set是ascii不太好(虽然我也这么做了- -),因为题目并没有明说,interview的时候最好问一下interviewer确认一下
  • 其实boolean ascii array也是hash table的一种实现,ascii code -> array index
  • Without using additional data structure, we can do this by either:
     a) comparison for all pairs of chars, O(N^2)
     b) in place sorting the string and checking equality between chars and the one next to it(O(NlgN) by quicksort)

【时间复杂度】
O(N)


【空间复杂度】
|CharSet| = O(1)


【gist link】
https://gist.github.com/chrislukkk/da436ce6b06838fd8ca0




回复

使用道具 举报

🔗
fang_wu 2014-6-17 17:46:22 | 只看该作者
全局:
【解题思路】设置一个256boolean的数组,这主要是不仅仅是常见的字符串,基本上所有可以出现的可能都包括了。
【时间复杂度】O(n)
【空间复杂度】O(n)
【gist link】https://gist.github.com/qiangusc/800a3e8d7edd63f593d6

【时间复杂度】O(n)
【空间复杂度】O(1)

点评

咱们解法是一样的~握爪~ 向你学习s.toCharArray()这个方法~  发表于 2014-6-18 00:06
回复

使用道具 举报

🔗
jaly50 2014-6-18 00:00:00 | 只看该作者
全局:
本帖最后由 jaly50 于 2014-6-18 00:04 编辑

【解题思路】
本来只想着记录26个字母是否出现过。看了前面的大神,才意识到string包括ascii里256种字符。
用了boolean array: AsciiTable[256] 判断该字符在string中是否出现过,如果出现过,就return false,否则将整个字符串遍历完成,return true.
【时间复杂度】
O(n)
【空间复杂度】
O(1)
【gist link】
https://gist.github.com/jaly50/56eca3e90a8544451a54

【测试数据】
Am IeMptySTring?! has all unique characters: true
回复

使用道具 举报

🔗
daisyang 2014-6-18 00:12:49 | 只看该作者
全局:
I have two versions:
version 1: using sort algorithm. time complexity O(nlogn) ,space complexity O(1)
version 2 : time complexity O(n) ,space complexity O(1)

[gist link] https://gist.github.com/daisyang/f6fbf6c9bf6c24d6ce13#file-1_1
回复

使用道具 举报

🔗
daisyang 2014-6-18 00:25:26 | 只看该作者
全局:
qianhuang 发表于 2014-6-16 09:40
【解题思路】
1. 如果字符是ASCII码,用256大小的bool数组或者bitset去存该字符是否出现过。
2. 如果空间 ...

should CHAR_MAX be 127 ?
回复

使用道具 举报

🔗
MichaelYC 2014-6-18 00:30:44 | 只看该作者
全局:
grassgigi 发表于 2014-6-17 00:17
【解题思路】用了boolean array for ascii chars
  • 我觉得假设char set是ascii不太好(虽然我也这么做 ...

  • 感觉return value 写反了;
    你的 method 里面从上到下的三个 return,我感觉应该分别是return: true, false, true.

    PS: 问下,怎么“点评”帖子 instead of “回复”?
    多谢点评我的 Code。
    回复

    使用道具 举报

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

    本版积分规则

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