巨人网络题解

1 简单模拟下就行 把10变为2 最后数最长2的个数
    string s;
    cin >> s;
    int len = s.length();
    int count = 0;
    for (int i = 0; i < len;) {
        while (s[i] == '2' &&i<len) {
            i++;
        }
        int ileft = i;
        int iright = i + 1;
        while (iright <len && s[iright] == '2')
            iright++;
        if (s[ileft] == '1' && s[iright] == '0') {
            s[ileft] = '2';
            s[iright] = '2';
            i = 0;
            continue;
        }
        i++;
    }
    int res = 0;
    for (int i = 0; i<len;) {
        if (s[i] == '2') {
            int tmp = 0;
            while (i<len &&s[i] == '2') {
                tmp++;
                i++;
            }
            res = max(res, tmp);
            continue;
        }
        i++;
    }
    cout << res;

2 简单dfs
3 简答题


#巨人网络##笔试##华为##字节跳动##腾讯#
全部评论
确实,被第二题的二维矩阵恶心死了,也不说一下几行几列,有什么意义呢
点赞 回复 分享
发布于 2022-09-23 23:26 湖北

相关推荐

3 收藏 评论
分享
牛客网
牛客企业服务