欧美1区2区3区激情无套,两个女人互添下身视频在线观看,久久av无码精品人妻系列,久久精品噜噜噜成人,末发育娇小性色xxxx

螞蟻暑期實(shí)習(xí)筆試

一共三道題,一道字符串,一道二分+前綴和,一道組合計數(shù)。

  • 定義:
  • 圓圈字符: 26個小寫字母中里面有圈的字母。(a, b, d, e, g, o, p, q
  • 一個字符串中圓圈字符的個數(shù)大于非圓圈字符的個數(shù),那么該字符串為圓圈字符串
  • 問題:
  • 輸入一個字符串,將字符串拆分為多個字串,求拆分后圓圈字符串最多有幾個。

Input:

abc

Output:

2

Code:

#include <bits/stdc++.h>

using namespace std;

int main() {
    string s;
    cin >> s;
    int cnt = 0;
    string ot = "abdegopq";
    for (int i = 0; i < s.size(); i++) {
        if (ot.find(s[i]) != string::npos) cnt++;
    }
    cout << cnt << endl;
    return 0;
}
  • 問題:輸入,給一個長度為的整數(shù)數(shù)組,以及個操作。
  • 操作1,輸入一個1以及一個整數(shù),對所有的進(jìn)行賦值操作:
  • 操作2,輸入一個2,輸出數(shù)組中所有元素的和。
  • 輸入包含組。

Input:

1
5 3
1 3 5 4 2
2
1 2
2

Output:

15
9

Code:

#include <bits/stdc++.h>

using namespace std;

const int N = 2e5 + 10;

#define LL long long

int n, q, a[N];
LL s[N];

int main() {
    int T;
    scanf("%d", &T);
    while (T -- ) {
        scanf("%d%d", &n, &q);
        for (int i = 1; i <= n; i ++) {
            scanf("%d", &a[i]);
            s[i] = s[i - 1] + a[i];
        }
        sort(a + 1, a + n + 1);
        LL ans = s[n];
        int R = n;
        while (q --) {
            int op;
            scanf("%d", &op);
            if (op == 2) printf("%lld\n", ans); 
            else {
                int v;
                scanf("%d", &v);
                int l = 1, r = R, f = -1;
                while (l <= r) {
                    int mid = (l + r) >> 1;
                    if (a[mid] >= v) {
                        f = mid;
                        r = mid - 1;
                    }
                    else l = mid + 1;
                }
                if (f == -1) continue;
                else {
                    R = f;
                    a[f] = v;
                    ans = s[f - 1] + (LL) a[f] * (n - f + 1); 
                }
            }
        }
    }
    return 0;
}
  • 定義:一個整數(shù),例如,那么對每一位進(jìn)行排列組合可以得到,但這個數(shù)本身不應(yīng)該被包含在內(nèi)。因此最終的集合為。
  • 問題:這個集合中,數(shù)位上所有數(shù)字的和為素數(shù)的元素個數(shù)。
  • 輸入個整數(shù),每個整數(shù)
  • 不考慮前導(dǎo)0

Input:

4
100
123
101
236

Output:

0
0
2
5

Code:

#include <bits/stdc++.h>

using namespace std;

int main() {
    int T;
    scanf("%d", &T);
    while (T -- ) {
        char x[12];
        scanf("%s", x + 1);
        int sum = 0, n = strlen(x + 1), cnt[12] = {0};
        for (int i = 1; i <= n; i ++ ) {
            int t = x[i] - '0';
            sum += t;
            cnt[t] ++;
        }
        bool f = true;
        for (int i = 2; i * i <= sum; ++ i) {
            if (sum % i == 0) {
                f = false; break;
            }
        }
        if (sum == 1) f = false;
        if (!f) {
            puts("0"); continue;
        }

        auto A = [&](int x) -> int {
            int res = 1;
            for (int i = 2; i <= x; ++i) res *= i;
            return res;
        };

        int ans = A(n);
        for (int i = 0; i <= 9; ++ i) {
            ans /= A(cnt[i]);
        }
        printf("%d\n", --ans);
    }
    return 0;
}
#螞蟻實(shí)習(xí)筆試#
全部評論
你好,螞蟻筆試是雙機(jī)位嗎,我是暑期實(shí)習(xí)
點(diǎn)贊 回復(fù) 分享
發(fā)布于 03-26 09:56 湖北
哥們兒還記得單選的那道前綴樹的題目嗎?那個題是什么意思呀?
點(diǎn)贊 回復(fù) 分享
發(fā)布于 03-20 23:27 湖北

相關(guān)推薦

點(diǎn)贊 評論 收藏
分享
T1&nbsp;模擬,送分T2&nbsp;a升序sort,b降序sort,前一半加a[i]后一半減a[i],b反著來就行T3&nbsp;排列數(shù)+快速冪&nbsp;沒了
又熬夜了的布萊恩很有膽量:排列數(shù)部分有什么優(yōu)化嗎,循環(huán)算排列數(shù)*快速冪只有20%
投遞螞蟻集團(tuán)等公司10個崗位 > 筆試
點(diǎn)贊 評論 收藏
分享
評論
7
4
分享

創(chuàng)作者周榜

更多
??途W(wǎng)
牛客企業(yè)服務(wù)