c++ 4级AB语言翻译问题

本文介绍了一个编程题目,要求编写一个程序,使用给定的A-B语言词典进行单词翻译,遇到未翻译的词用UNK代替。程序接收词典和待翻译句子作为输入,输出翻译后的句子。
摘要由CSDN通过智能技术生成

题目:

翻译问题
小杨是一名翻译员负责将A语言翻译成B语言
为此他特意编了一本词典,其中包含A语言的单词和对应的B语言
为了更好的工作,他请我们编译一个程序来帮助他翻译:
先输入一行表示小样字典里有多少个单词(n)
在输入n行,每行包含一个A语言单词和对应的B语言翻译
中间用空格分开如
abc q
这句话表示A语言的abc单词翻译成B语言单词是q
数如完n行后在输入一段话为要翻译成B语言的A语言,每个单词间至少要有1个符号分开如
asdsd\\sSSwe__+opswe.sdQaq^sd$ssd#@qw""as
规定这段话只包含字符和大小写字母
如果在句子中出现了词典中没有的单词请用UNK代替

此题目不一定准确,(记忆中的) 

看下chatgpt题解

#include <iostream>
#include <unordered_map>

#include <sstream>

#include <vector>

int main() {
//输入词典中单词的数量
int n;
std: :cin >> n;

// 创建词典
std: :unordered_map<std :: string, std: :string> dictionary;
std :: string aWord, bWord;
for (int i = 0; i < n; ++i) {
std: :cin >> aWord >> bWord;
dictionary[aWord] = bWord;
}
//输入待翻译的句子
std :: string sentence;
std :: cin.ignore(); // 清除缓冲区
std: :getline(std :: cin, sentence);

// 将句子分割成单词
std: : istringstream iss(sentence);
std: : vector<std: :string> words;,
std: :string word;
while (iss >> word) {
words. push_back (word) ;
}

//进行翻译并输出结果
for (const auto &w : words) {
auto it = dictionary. find(w);
if (it != dictionary. end()) {
std: :cout << it->second << " ";
} else {
std :: cout << "UNK ";
}

(最后加个大括号)

PY代码

n = int(input())  # 输入词典中单词的数量
dictionary = {}  # 创建一个空字典用于存储翻译对应关系

# 输入词典中的单词和对应的翻译
for _ in range(n):
    word, translation = input().split()
    dictionary[word] = translation

sentence = input()  # 输入要翻译的句子
translated_sentence = []  # 创建一个空列表用于存储翻译后的单词

# 遍历句子中的每个单词
for word in sentence.split():
    if word in dictionary:
        translated_sentence.append(dictionary[word])
    else:
        translated_sentence.append("UNK")

# 输出翻译后的句子
translated_sentence = " ".join(translated_sentence)
print(translated_sentence)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小唐C++

干累了,给个吧,求求了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值