📣 独立日限时特惠: VIP通行证立减$68
楼主: jimmyalearner
跳转到指定楼层
上一主题 下一主题
收起左侧

IBM Entry Level Software Engineer Guru面经

🔗
 楼主| jimmyalearner 2017-9-6 04:34:05 | 只看该作者
全局:
水浅王八多 发表于 2017-8-31 00:12
卧槽。。这题好有意思。。

我也是第一次碰到这种题。。。
回复

使用道具 举报

🔗
chaohubian 2017-10-1 11:40:47 | 只看该作者
全局:
class SolutionIBM1 { public:     string replaceNumber(int leng, int a, int b) {         vector<string> result;         string output="";         for(int i=0; i<leng; i++) {             string curr="";             if( (isDivisible(i+1, a) || isDivisible(i+1, b)) || (hasDigit(i+1, a) || hasDigit(i+1, b))){                 if(isDivisible(i+1, a) || isDivisible(i+1, b))                     curr+="OUT";                 if(hasDigit(i+1, a) || hasDigit(i+1, b)) {                     curr+="THINK";                 }             }             else {                 curr+=to_string(i+1);             }             result.push_back(curr);         }         for(int i=0; i<result.size(); i++) {             if(i==0) {                 output+=result[i];             }             else {                 output+="," + result[i];             }         }         return output;     }          void test() {         cout<<replaceNumber(20, 3, 4)<<endl;         cout<<replaceNumber(7, 2, 3)<<endl;     } private:     bool isDivisible(int i, int a) {         if(a==0) {             return false;         }         if(i%a==0) {             return true;         }         return false;     }     bool hasDigit(int i, int a) {         string ii = to_string(i);         string aa = to_string(a);         if(ii.find(aa)!=string::npos) {             return true;         }         return false;     } };  class SolutionIBM2 {     //Trie public:     class TrieNode{     public:         bool isWord;         TrieNode* next[26];         TrieNode(bool b=false) {             memset(next, 0, sizeof(next));             isWord=b;         }     };      SolutionIBM2() {         root=new TrieNode();     }          void insert(string s) {         TrieNode *p = root;         for(int i=0; i<s.size(); i++) {             if(p->next[s[i]-'A']==NULL) {                 p->next[s[i]-'A']=new TrieNode();             }             p=p->next[s[i]-'A'];         }         p->isWord=true;     }          bool search(string key) {         TrieNode *p = find(key);         return p!=NULL && p->isWord;     }          vector<string> startsWith(string prefix) {         TrieNode* p = find(prefix);         vector<string> result;         if(p==NULL) {             result.push_back("<NONE>");             return result;         }         vector<int> path;         dfsHelper(p, path, result);         for(int i=0; i<result.size(); i++) {             result[i]= prefix+result[i];         }         return result;     }          void test() {         insert("ACETAMINOPHEN");         insert("ASPERGEL");         insert("ASPRIN");         insert("ASPERTAME");         insert("ATAVAN");         insert("ATBCDEW");         insert("BUPROPION");         cout<<search("AT")<<endl;         vector<string> result = startsWith("BD");         for (int i=0; i<result.size(); i++) {             cout<<result[i]<<endl;         }     } private:     void dfsHelper(TrieNode* root, vector<int>& path, vector<string>& result) {         if(root==NULL) {             return;         }         if(root->isWord==true) {             string curr = "";             for(int i=0;i<path.size(); i++) {                 curr += 'A'+path[i];             }             result.push_back(curr);         }         for(int j=0; j<26; j++) {             if(root->next[j]!=NULL) {                 path.push_back(j);                 dfsHelper(root->next[j], path, result);                 path.pop_back();             }         }     }     TrieNode* find(string key) {         TrieNode *p = root;         for(int i=0; i<key.size() && p!=NULL; i++) {             p=p->next[key[i]-'A'];         }         return p;     }          TrieNode* root; };  class SolutionIBM3 { public:     vector<string> parser(vector<string> input) {         vector<string> result;         unordered_map<string, unordered_map<string, int>> dict;         for (int i=0; i<input.size(); i++) {             vector<string> curr;             string token;             istringstream ss(input[i]);             while(getline(ss, token, ',')) {                 curr.push_back(token);             }             if (curr.size()==3) {                 if (dict.find(curr[0])==dict.end()) {                     unordered_map<string, int> temp;                     temp[curr[2]]=stoi(curr[1]);                     dict[curr[0]]=temp;                 }                 else {                     dict[curr[0]][curr[2]]+=stoi(curr[1]);                 }             }         }         for (auto it = dict.begin(); it != dict.end(); ++it ) {             string curr = it->first;             int all=0, unit=0;             string avg;             for(auto itt = it->second.begin(); itt!=it->second.end(); ++itt) {                 unit++;                 all+=itt->second;             }             avg=to_string((float)all/unit);             curr+=","+to_string(all);             curr+=","+avg.substr(0,avg.find('.')+3);             curr+=","+to_string(unit);             result.push_back(curr);         }         return result;     }     void test() {         vector<string> input;         input.push_back("2017-06-02,5,Apples");         input.push_back("2017-06-02,2,pears");         input.push_back("2017-06-03,3,pineapples");         vector<string> result = parser(input);         for(int i=0; i<result.size(); i++) {             cout<<result[i]<<endl;         }     } };
回复

使用道具 举报

🔗
zadzad163 2017-10-10 11:08:54 | 只看该作者
全局:
mac是说的mac os么?
回复

使用道具 举报

🔗
 楼主| jimmyalearner 2017-10-13 08:40:58 | 只看该作者
全局:
zadzad163 发表于 2017-10-10 11:08
mac是说的mac os么?

是的,就是指的mac os
回复

使用道具 举报

🔗
zadzad163 2017-10-13 10:11:19 | 只看该作者
全局:
jimmyalearner 发表于 2017-10-13 08:40
是的,就是指的mac os

好吧 我觉得这也不算啥基础知识啊...难道会用mac算标配?
回复

使用道具 举报

🔗
 楼主| jimmyalearner 2017-10-14 03:34:47 | 只看该作者
全局:
zadzad163 发表于 2017-10-13 10:11
好吧 我觉得这也不算啥基础知识啊...难道会用mac算标配?

因为面试的时候问我对windows熟还是mac熟,我说mac,他可能就顺着就问了吧
回复

使用道具 举报

🔗
twpiggood 2017-10-21 00:41:07 | 只看该作者
全局:
請問樓主分別安排Guru和Guide的recruiter是哪兩位啊,下週要面,想要在之前交流一下 微信id:twc302
回复

使用道具 举报

🔗
 楼主| jimmyalearner 2017-10-21 03:54:18 | 只看该作者
全局:
twpiggood 发表于 2017-10-21 00:41
請問樓主分別安排Guru和Guide的recruiter是哪兩位啊,下週要面,想要在之前交流一下 微信id:twc302

今年Full-time Guru technical的recruiter是Niki Weitzel, Guide的recruiter是Sylvana Ferraro
希望对你有帮助
回复

使用道具 举报

🔗
wccbip 2017-11-2 05:50:15 | 只看该作者
全局:
楼主是NYU的?刚面完Guru + guide
回复

使用道具 举报

🔗
 楼主| jimmyalearner 2017-11-2 06:01:48 | 只看该作者
全局:
wccbip 发表于 2017-11-2 05:50
楼主是NYU的?刚面完Guru + guide

是的,祝好运!
你也在群里?
回复

使用道具 举报

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

本版积分规则

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