蚂蚁暑期 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()
相关推荐
先吃饱再说1 天前
判断回文字符串,从一行代码到双指针优化
算法
黄敬峰1 天前
深入理解算法核心:从递归思想、数组扁平化到快速排序
算法
得物技术2 天前
从狂野代码到按目标生产:得物推荐 AI Harness 的工程化实践|AICon 演讲整理
人工智能·算法·架构
AI小老六2 天前
SkillOpt 架构拆解:把 Skill 文本当参数,用执行轨迹训练 Agent
后端·算法·ai编程
胡萝卜术2 天前
从“分数打架”到“排名投票”:为什么你的ChatBI必须用RRF?
算法·设计模式·面试
Asize2 天前
初识DFS 与 BFS:递归、队列与图遍历
算法
罗西的思考2 天前
机器人 / 强化学习】HIL-SERL:人类在环驱动的具身智能进化框架
人工智能·算法·机器学习
美团技术团队2 天前
LongCat 开源 VitaBench 2.0:长期动态智能体基准新标杆
人工智能·算法
To_OC3 天前
LC 207 课程表:刚学图论那会儿,我连这是拓扑排序都没看出来
javascript·算法·leetcode