蚂蚁暑期 319 笔试

蚂蚁暑期 319 笔试

全相等



解题:

python 复制代码
def solve():
    n = int(input())
    s = input()
    ans = 0
    for left in range(n):
        freq = [0] * 26
        for right in range(left, n):
            freq[ord(s[right]) - ord('a')] += 1
            vals = set(i for i in freq if i > 0)
            if len(vals) == 1:
                ans += 1
    print(ans)

T = int(input())
for _ in range(T):
    solve()

文本数值混合特征工程



求解:

机器学习的题目 本质都是 数据加载 -> 特征处理 -> 模型训练 -> 预测输出 这四个固定模块

python 复制代码
import json
import numpy as np
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model import SGDClassifier, LogisticRegression
from sklearn.preprocessing import StandardScaler, PolynomialFeatures
from scipy.sparse import hstack

# 1. 加载数据
data = json.loads(input())
train_txt = data['train_txt']
train_num = np.array(data['train_num'])
train_y = np.array(data['train_y'])
test_txt = data['test_txt']
test_num = np.array(data['test_num'])

# Word-level TF-IDF
word_vec = TfidfVectorizer(lowercase=True, stop_words="english",
                           ngram_range=(1, 2), sublinear_tf=True)

tr_word = word_vec.fit_transform(train_txt)
te_word = word_vec.transform(test_txt)

# Char 3-gram TF-IDF
char_vec = TfidfVectorizer(analyzer="char", ngram_range=(3, 3),
                           lowercase=True, sublinear_tf=True)
tr_char = char_vec.fit_transform(train_txt)
te_char = char_vec.transform(test_txt)

# Numeric: StandardScaler + PolynomialFeatures
scaler = StandardScaler()
poly = PolynomialFeatures(degree=2, include_bias=False)
tr_num = poly.fit_transform(scaler.fit_transform(train_num))
te_num = poly.transform(scaler.fit_transform(test_num))


# 合并
X_tr = hstack([tr_word, tr_char, tr_num])
X_te = hstack([te_word, te_char, te_num])

# LogisticRegression
lr = LogisticRegression(penalty='l2', solver='liblinear',
                        max_iter=1000, random_state=42)
lr.fit(X_tr, train_y)

# SGDClassifier
sgd = SGDClassifier(loss='log_loss', penalty='l2', alpha=1e-4,
                    max_iter=1000, random_state=42)

sgd.fit(X_tr, train_y)

# 软投票
prob = (lr.predict_proba(X_te)[:1] + sgd.predict_proba(X_te)[:1]) / 2
preds = (prob > 0.5).astype(int).tolist()
print(json.dumps(preds))

三元异或


考的是 异或的基本性质:a⊕b=c⟹a=b⊕c,b=a⊕c

python 复制代码
def solve():
    n, k = map(int, input().split())
    nums = list(map(int, input().split()))
    # a_i ^ a_j ^ a_p ^ a_q = k => a_i ^ a_j = k ^ (a_p ^ a_q)
    mp = {} # key为 a_i ^ a_j的值, value是数组,存放 下标元组(i, j)
    for i in range(n):
        for j in range(i + 1, n):
            v = nums[i] ^ nums[j]
            if v not in mp:
                mp[v] = []
            mp[v].append((i, j))
    for i in range(n):
        for j in range(i + 1, n):
            target = nums[i] ^ nums[j] ^ k
            if target not in mp:
                continue
            for a, b in mp[target]:
                if i != a and i != b and j != a and j != b:
                    print("Yes")
                    return
    print("No")

T = int(input())
for _ in range(T):
    solve()
相关推荐
王老师青少年编程11 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【哈夫曼贪心】:合并果子
c++·算法·贪心·csp·信奥赛·哈夫曼贪心·合并果子
叼烟扛炮12 小时前
C++第二讲:类和对象(上)
数据结构·c++·算法·类和对象·struct·实例化
天疆说12 小时前
【哈密顿力学】深入解读航天器交会最优控制中的Hamilton函数
人工智能·算法·机器学习
wuweijianlove12 小时前
关于算法设计中的代价函数优化与约束求解的技术7
算法
小程故事多_8013 小时前
[大模型面试系列] 多轮对话 Agent 设计实战(含窗口优化 + 工具调用精髓)
人工智能·面试·职场和发展
leoufung13 小时前
LeetCode 149: Max Points on a Line - 解题思路详解
算法·leetcode·职场和发展
样例过了就是过了13 小时前
LeetCode热题100 最长公共子序列
c++·算法·leetcode·动态规划
HXDGCL13 小时前
矩形环形导轨:自动化循环线的核心运动单元解析
运维·算法·自动化
谭欣辰13 小时前
C++ 排列组合完整指南
开发语言·c++·算法
代码中介商14 小时前
银行管理系统的业务血肉 —— 流程、状态机、输入校验与持久化(下篇)
c语言·算法