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

淘天筆試 淘天算法 0322

筆試時(shí)間:2025年03月22日

歷史筆試傳送門:

2023春招秋招筆試合集

2024春招秋招筆試合集

第一題

題目

游游正在進(jìn)行字符串對照試驗(yàn)。他有一個(gè)長度為 n 的字符串 s 和另一個(gè)長度同樣為 n 的字符串 t。他首先定義可控字符的等級:可控一級:小寫字母可控二級:大寫字母可控三級:數(shù)字不可控:其他字符隨后,他將依次對每個(gè) i (1 ≤ i ≤ n) 進(jìn)行以下操作:如果 s 和 t 的第 i 個(gè)字符都是可控的,且等級相同,則輸出這兩個(gè)字符對應(yīng)的中位 ASCII 碼所表示的字符。如果 s 和 t 的第 i 個(gè)字符都是可控的,但等級不同,則輸出這兩個(gè)字符的中位 ASCII 碼(數(shù)值)。否則,直接輸出一個(gè)下劃線 "_"。其中,中位 ASCII 碼定義為兩個(gè)字符 ASCII 碼值的平均值向上取整。

輸入描述

第一行:正整數(shù) n (1 ≤ n ≤ 3×10^5)

第二行:字符串 s

第三行:字符串 t

輸出描述

操作之后得到的字符串。

樣例輸入

9

CiaLlo!?.

dAmE*+-/

樣例輸出

8485gI_____

參考題解

模擬

C++:[此代碼未進(jìn)行大量數(shù)據(jù)的測試,僅供參考]

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

int get_level(char ch) {
    if ('a' <= ch && ch <= 'z') {
        return 1;  // 可控一級
    } else if ('A' <= ch && ch <= 'Z') {
        return 2;  // 可控二級
    } else if ('0' <= ch && ch <= '9') {
        return 3;  // 可控三級
    } else {
        return 0;  // 不可控
    }
}

void solve() {
    int n;
    cin >> n;
    string s, t;
    cin >> s >> t;
    
    vector<char> result;
    
    for (int i = 0; i < n; i++) {
        int level_s = get_level(s[i]);
        int level_t = get_level(t[i]);
        
        if (level_s != 0 && level_t != 0) {
            int mid_ascii = (s[i] + t[i] + 1) / 2;
            if (level_s == level_t) {
                result.push_back(char(mid_ascii));
            } else {
                result.push_back(char(mid_ascii));
            }
        } else {
            result.push_back('_');
        }
    }
    
    for (char ch : result) {
        cout << ch;
    }
    cout << endl;
}

int main() {
    solve();
    return 0;
}

Java:[此代碼未進(jìn)行大量數(shù)據(jù)的測試,僅供參考]

import java.util.*;

public class Main {
    public static int getLevel(char ch) {
        if ('a' <= ch && ch <= 'z') {
            return 1;  // 可控一級
        } else if ('A' <= ch && ch <= 'Z') {
            return 2;  // 可控二級
        } else if ('0' <= ch && ch <= '9') {
            return 3;  // 可控三級
        } else {
            return 0;  // 不可控
        }
    }

    public static void solve() {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        String s = sc.next();
        String t = sc.next();

        StringBuilder result = new StringBuilder();
        
        for (int i = 0; i < n; i++) {
            int level_s = getLevel(s.charAt(i));
            int level_t = getLevel(t.charAt(i));

            if (level_s != 0 && level_t != 0) {
                int mid_ascii = (s.charAt(i) + t.charAt(i) + 1) / 2;
                if (level_s == level_t) {
                    result.append((char) mid_ascii);
                } else {
                    result.append(Integer.toString(mid_ascii));
                }
            } else {
                result.append('_');
            }
        }
        
        System.out.println(result.toString());
    }

    public static void main(String[] args) {
        solve();
    }
}

Python:[此代碼未進(jìn)行大量數(shù)據(jù)的測試,僅供參考]

def solve():
    import sys
    data = sys.stdin.read().strip().split()
    n = int(data[0])
    s = data[1]
    t = data[2]

    def get_level(ch):
        if 'a' <= ch <= 'z':
            return 1  # 可控一級
        elif 'A' <= ch <= 'Z':
            return 2  # 可控二級
        elif '0' <= ch <= '9':
            return 3  # 可控三級
        else:
            return 0  # 不可控

    result = []
    for i in range(n):
        level_s = get_level(s[i])
        level_t = get_level(t[i])
        # 如果兩者均可控
        if level_s != 0 and level_t != 0:
            # 計(jì)算中位 Ascii 碼 (向上取整)
            mid_ascii = (ord(s[i]) + ord(t[i]) + 1) // 2
            if level_s == level_t:
                # 等級相同 -> 輸出字符
                result.append(chr(mid_ascii))
            else:
                # 等級不同 -> 輸出數(shù)字(字符串形式)
                result.append(str(mid_ascii))
        else:
            result.append('_')
    print(''.join(result))
solve()

第二題

題目

對于給定的正整數(shù) n 和正整數(shù) m,求解下式:

n xor (n/2) mod m這顯然難不倒你,所以我們將會使用一種特殊的方式給出 n 的二進(jìn)制形式:

給出一個(gè)由 k 個(gè)整數(shù)構(gòu)成的數(shù)組 (a1, a2, …, ak),其中,第 i 個(gè)整數(shù) ai 表示 n 的二進(jìn)制表示中,從高位到低位,恰好有連續(xù) ai 個(gè) (i mod 2) 的數(shù)字。更具體地,如果數(shù)組 a = {3, 4, 1, 2},那么,第一個(gè)整數(shù) a1 表示有 3 個(gè) 1(因?yàn)?3 mod 2 = 1),第二個(gè)整數(shù) a2 表示有 4

剩余60%內(nèi)容,訂閱專欄后可繼續(xù)查看/也可單篇購買

2025 春招筆試合集 文章被收錄于專欄

2025打怪升級記錄,大廠筆試合集 C++, Java, Python等多種語言做法集合指南

全部評論

相關(guān)推薦

點(diǎn)贊 評論 收藏
分享
評論
點(diǎn)贊
收藏
分享

創(chuàng)作者周榜

更多
牛客網(wǎng)
??推髽I(yè)服務(wù)