2022-09-15-数巅科技-今年成立-昨天一面今天二面

昨天一面是电话半小时,今天二面是腾讯会议,先做了个题。

两个字符串相乘

问有没有什么错误

我说没考虑负数,
他说没考虑异常,可能有什么异常,
我说应该考虑非数字字符、非正负号,用throw
他说抛异常和返回空字符串有什么区别
我说可以给出错误原因
他说代码里还有个小错误
我说没找到
他说string_one_mul传参传的是一个字符,没有减'0'
这个错误做招银外包笔试时也做错了。

#include <iostream>
#include <vector>
#include <string>
using namespace std;

string string_one_mul(const string &a, int b, int zeros)
{
    string res = "";
    int c = 0; // 进位
    int t;
    for (int i = a.length() - 1; i >= 0; i--)
    {
        t = b * int(a[i] - '0') + c;
        res.append(string('0' + t % 10, 1));
        c = t / 10;
    }
    if (c > 0)
        res.append(string('0' + c, 1));
    reverse(res.begin(), res.end());
    res.append(string('0', zeros));
    return res;
}

string string_add(const string &a, const string &b)
{
    string res = "";
    int c = 0, t;
    for (int i = 0; i < max(a.length(), b.length()); i++)
    {
        if (i >= a.length())
        { // b
            c = c + b[i] - '0';
            res.append(string(c % 10, 1));
            c = c / 10;
        }
        else if (i >= b.length())
        { // a
            c = c + a[i] - '0';
            res.append(string(c % 10, 1));
            c = c / 10;
        }
        else
        {
            c = c + (b[i] - '0') + (a[i] - '0');
            res.append(string(c % 10, 1));
            c = c / 10;
        }
    }
    if (c > 0)
        res.append(string('0' + c, 1));
    reverse(res.begin(), res.end());
    return res;
}

string multiply(const string &a, const string &b) throw exception  // n m     mn  O(max(n,m)) = O(n+m) = O(4n)
{

    string res = "", t;
    for (int i = 0; i < b.length(); i++)
    {
        t = string_one_mul(a, b[i]-'0', b.length() - i - 1);
        res = string_add(res, t);
    }
    return res;
}

int main()
{

    return 0;
}
#23秋招##23届秋招##创新创业##面试##23届秋招笔面经#
全部评论
在哪里投呀……
1
送花
回复 分享
发布于 2022-09-16 15:18 广东
9月21日  4面 38min
点赞
送花
回复 分享
发布于 2022-09-21 20:53 上海
蔚来
校招火热招聘中
官网直投
老哥,这个公司百度都查不到
点赞
送花
回复 分享
发布于 2022-09-24 01:30 湖南
这个公司全名叫啥你知道不。。我也莫名其妙收到面试,但是查不到
点赞
送花
回复 分享
发布于 2022-10-14 18:02 陕西

相关推荐

OPSL:钱确实给的多,但是追责这一点比较迷惑…3个月具体如何计算呢?出勤天数30*3吗?还是21*3呢?万一中间学校有安排怎么办呢?这个得多问一问呀
点赞 评论 收藏
分享
6 5 评论
分享
牛客网
牛客企业服务