2020.08.26阿里巴巴笔试(1h 2题!!!)

第一题:给出两个长度均为n的字符串A, B(只包含小写字母),求字典序介于这两个字符串之间的且长度为n的字符串有多少个, 即满足 A < X < B;
思路:直接把字符串看出是一个26进制的数据,然后相减的结果 - 1 就是答案了!
注意:26^10 超过了int的范围,所以用long long, 最后5min通过,卡崩溃了...
代码:AC
#include<bits/stdc++.h>
using namespace std;

typedef long long ll;
#define pii pair<int, int>
#define pll pair<ll, ll>
#define mp make_pair
#define ios ios::sync_with_stdio(false),cin.tie(0);

template <typename T>
inline void read(T &x) {char ch=getchar(); int f=1; x=0; while(!isdigit(ch)){if(ch=='-')f *= -1; ch=getchar();} while(isdigit(ch)) {x = (x<<1) + (x<<3) + (ch^48); ch=getchar();} x*=f;}
ll qpow(ll x, ll y) { ll a=1, b=x; while(y){if(y&0x1) a*=b; b*=b; y>>=1;} return a;}

int main(void)
{
#ifndef ONLINE_JUDGE
    freopen("a.txt", "r", stdin);
#endif

    int t, n;
    string stra, strb;

    cin >> t;
    while(t--) {
        cin >> n >> stra >> strb;
        if(stra >= strb) {
            cout << 0 << endl;
            continue;
        }

        int a[16] = {0};
        int b[16] = {0};
        for(int i = 0; i < n; ++i) {
            a[i] = stra[i] - 'a' + 1;
            b[i] = strb[i] - 'a' + 1;
        }

        int pos = 0;
        for(int i = 0; i < n; ++i) if(a[i] != b[i]) {pos = i; break;}
        
        ll suma = 0, sumb = 0, t = 1;
        for(int i = pos+1; i < n; ++i) {
            suma = suma * 26 + (ll)a[i];
            sumb = sumb * 26 + (ll)b[i];
            t *= 26;
        }
        printf("%lld\n", sumb + 1LL * t * (b[pos] - a[pos]) - suma - 1LL);
    }
    return 0;
}

第二题:题目刚刚读完,最后2分钟交卷了,我也太菜了!
我感觉第二题不是那么难,有点01背包的味道,耗费忍耐值,得到对应的数量的怪!可能与阿里无缘了,不用惦记了!
#笔试题目##阿里巴巴#
全部评论
老哥一摸一样哈哈哈哈,我也是第二题就写了一半就到点了
1 回复 分享
发布于 2020-08-26 10:24
请问在哪里可以做?
点赞 回复 分享
发布于 2020-08-29 10:08
第一题思路一样。第二题不太难?01背包?第二题亚洲区域赛的题,hdu4415
点赞 回复 分享
发布于 2020-08-26 22:55
第二题欢迎讨论https://www.nowcoder.com/discuss/488902?type=0&order=3&pos=26&page=1&channel=666&source_id=discuss_center_0
点赞 回复 分享
发布于 2020-08-26 10:24
加一,看着题心里都有思路了,并没有时间写……
点赞 回复 分享
发布于 2020-08-26 10:23

相关推荐

在秋招的小白菜很想养修勾:一眼 苍穹外卖+谷粒商城,项目换一换吧,可以找一些付费知识星球博主带带,避免烂大街。多投投大厂,背背八股,你这学历乱杀了,等实习经验到位,到时候大厂闭眼选
投递美团等公司7个岗位
点赞 评论 收藏
分享
04-30 21:35
已编辑
长安大学 C++
晓沐咕咕咕:评论区没被女朋友好好对待过的计小将可真多。觉得可惜可以理解,毕竟一线大厂sp。但是骂楼主糊涂的大可不必,说什么会被社会毒打更是丢人。女朋友体制内生活有保障,读研女朋友还供着,都准备订婚了人家两情相悦,二线本地以后两口子日子美滋滋,哪轮到你一个一线城市房子都买不起的996清高计小将在这说人家傻😅
点赞 评论 收藏
分享
评论
1
4
分享

创作者周榜

更多
牛客网
牛客企业服务