蚂蚁暑期 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()
相关推荐
测试19984 分钟前
Jmeter接口自动化测试:Jmeter变量的使用
自动化测试·软件测试·测试工具·jmeter·职场和发展·测试用例·接口测试
科学实验家7 分钟前
最小生成树:Prim,kruskal
数据结构·c++·算法
学习智者10 分钟前
《玄》IDE v3.6.3重磅发布:全功能修复与性能飞跃
开发语言·c++·ide·算法·中文语言 玄
Jasmine_llq13 分钟前
《P10263 [GESP202403 八级] 公倍数问题》
算法·数论·快速 io 优化·埃氏筛(倍数枚举)·线性遍历求和
橘子汽水16814 分钟前
Leetcode 322 279 零钱兑换,完全平方数
算法·leetcode
kevin_kang21 分钟前
第01章 VoiceAgent 的总体架构与完整流程
算法
Lintongzg22 分钟前
KV-Cache 的显存账本:长上下文、并发与量化剪枝的取舍
算法·机器学习·剪枝
小孩玩什么31 分钟前
深入理解字符串匹配算法:BF算法,KMP算法
java·c语言·开发语言·数据结构·c++·算法
爱从未走散1 小时前
面试八股题
java·面试·职场和发展
jsjzsl21 小时前
独立自由度框架下核聚变的本体论本质与商业化技术新路径
人工智能·python·算法