楼主: 地里小马甲
跳转到指定楼层
上一主题 下一主题
收起左侧

[其他] 有人知道GG的short survey and coding sample 是神马么

 
🔗
菠萝君 2015-11-25 13:55:49 | 只看该作者
全局:
liranxixi 发表于 2015-11-25 13:28
好赞!我也在想是不是应该用树dfs,但是还要自己建个树……如果我用一个stack来实现可以么,就是通过空格 ...

这个写法很好啊,感觉简单很多...不过那个strs 应该是strs[i]的吧...
回复

使用道具 举报

🔗
liranxixi 2015-11-25 14:11:31 | 只看该作者
全局:
菠萝君 发表于 2015-11-25 13:55
这个写法很好啊,感觉简单很多...不过那个strs 应该是strs的吧...

嗯嗯~少写了一个[i].谢谢啦!
回复

使用道具 举报

🔗
cancerlk 2015-11-26 09:16:10 | 只看该作者
全局:
同收到了,我是别人refer的,然后收到了这个邮件. 楼主最后结果如何?
回复

使用道具 举报

🔗
 楼主| 地里小马甲 2015-11-26 10:11:16 | 只看该作者
全局:
cancerlk 发表于 2015-11-26 09:16. 1point3acres.com
同收到了,我是别人refer的,然后收到了这个邮件. 楼主最后结果如何?

喵 GG店面已经跪了。。~
回复

使用道具 举报

🔗
cancerlk 2015-11-26 23:25:08 | 只看该作者
全局:
地里小马甲 发表于 2015-11-26 10:11
喵 GG店面已经跪了。。~

哎好吧 move on~
回复

使用道具 举报

🔗
Sense 2015-12-2 14:08:47 | 只看该作者
全局:
#include <iostream>.--
#include <string>
#include <vector>
using namespace std;
class TreeNode{.1point3acres
public:
    TreeNode(string s, int l){
        name = s;
        level = l;
        type = 0;
        for(int i = 0; i < s.length(); i++){
            if(s[i] == '.' && i != s.length() - 1) type = 1;
        }
    }
    vector<TreeNode*> subDir;
    vector<TreeNode*> file;
    string name;
    int type;
    int level;
};. Χ

void addNode(TreeNode* dummy, TreeNode* temp){
    if(dummy->level == temp->level - 1){. 1point 3acres
        if(temp->type == 1) dummy->file.push_back(temp);
        else dummy->subDir.push_back(temp);-baidu 1point3acres
    }
    else{      
        addNode(dummy->subDir.back(), temp);.google  и
    }
}

int helper(TreeNode* cur, string line){
    // see if it is image file
    int i = 0;. 1point3acres.com
    for(; i < cur->name.length(); i++){
        if(cur->name[i] == '.') break;
    }
        if(i < cur->name.length()){
                string postfix = cur->name.substr(i + 1, cur->name.length() - i - 1);
                if(postfix == "jpeg" || postfix == "gif" || postfix == "png"){// it is an image file
                        line = line + '/' + cur->name;
                        return line.length() - 1;
                }
        }
    else if(i == cur->name.length() || i == cur->name.length() - 1){// it is a folder
        line = line + '/' + cur->name;
        int res = 0;
        for(int j = 0; j < cur->subDir.size(); j++){
            res = max(res, helper(cur->subDir[j], line));
        }
        for(int j = 0; j < cur->file.size(); j++){
            res = max(res, helper(cur->file[j], line));
        }
        return res;
    }
    return 0;
}

int solution(string &S) {. Χ
    // first split the string into substrings
    if(S.empty()) return 0;
    TreeNode* dummy = new TreeNode("", -1);
    int prev = 0, counter = 0;
        S += '\n';.--
    while(counter < S.length()){
        if(S[counter] != '\n') counter++;
        else{
            string cur = S.substr(prev, counter - prev);
            prev = counter + 1;
            int numOfSpaces = 0, level, i = 0;
            for(; i < cur.length(); i++){-baidu 1point3acres
                if(cur[i] != ' ') break;
                numOfSpaces++;
            }
            cur = cur.substr(i, cur.length() - i);
            level = numOfSpaces;. 1point 3acres
            TreeNode* temp = new TreeNode(cur, level);. 1point 3 acres
            addNode(dummy, temp);. .и
            counter = prev;
        }
    }. 1point 3acres
    string result;
    return helper(dummy, result);. 1point3acres
}

其实并不难,但我最后时间不够,有一些bug没时间改了...
回复

使用道具 举报

🔗
dengke 2015-12-5 02:04:31 | 只看该作者
全局:
liranxixi 发表于 2015-11-16 13:36
求问第二题是用什么形式传进来的呀?然后第一题是不是只要找到第一个降序位就可以了?谢谢你!

我也觉得是这样,从最高位开始一个个把digit拆出来。找到第一个降序位。
不过要怎么从最高位开始拆啊?我想到的是先转化为String,然后一个个用char拆出来再转换为Integer,这样是不是太笨了啊?
回复

使用道具 举报

🔗
菠萝君 2015-12-5 03:04:26 | 只看该作者
全局:
dengke 发表于 2015-12-5 02:04
我也觉得是这样,从最高位开始一个个把digit拆出来。找到第一个降序位。
不过要怎么从最高位开始拆啊? ...
.--
传进来的是个int, 可以拆成一个linkedlist.
回复

使用道具 举报

🔗
liranxixi 2015-12-5 14:11:09 | 只看该作者
全局:
dengke 发表于 2015-12-5 02:04
我也觉得是这样,从最高位开始一个个把digit拆出来。找到第一个降序位。
不过要怎么从最高位开始拆啊? ...

传进来的是int,我其实把它换成string,然后找到了插入string再转回int~
回复

使用道具 举报

🔗
SallyWu 2015-12-5 15:07:41 | 只看该作者
全局:
dengke 发表于 2015-12-5 02:04
我也觉得是这样,从最高位开始一个个把digit拆出来。找到第一个降序位。
不过要怎么从最高位开始拆啊? ...

每次除以10,从低位开始存入vector
回复

使用道具 举报

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

本版积分规则

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