当前位置: 首页 > article >正文

机器翻译(蓝桥云课)

队列、、

机器翻译

题目描述

小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。

这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续的查找和翻译。

假设内存中有 MM 个单元,每单元能存放一个单词和译义。每当软件将一个新单词存入内存前,如果当前内存中已存入的单词数不超过 M−1M−1,软件会将新单词存入一个未使用的内存单元;若内存中已存入 MM 个单词,软件会清空最早进入内存的那个单词,腾出单元来,存放新单词。

假设一篇英语文章的长度为 NN 个单词。给定这篇待译文章,翻译软件需要去外存查找多少次词典?假设在翻译开始前,内存中没有任何单词。

输入描述

输入共 2 行。每行中两个数之间用一个空格隔开。

第一行为两个正整数 MM 和 NN,代表内存容量和文章的长度。

第二行为 NN 个非负整数,按照文章的顺序,每个数(大小不超过 1000)代表一个英文单词。文章中两个单词是同一个单词,当且仅当它们对应的非负整数相同。

其中,0<M≤100,0<N≤10000<M≤100,0<N≤1000。

输出描述

输出共 1 行,包含一个整数,为软件需要查词典的次数。

输入输出样例

示例 1

输入

3 7
1 2 1 5 4 4 1

输出

5
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.Scanner;

public class MachineTranslation {
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        int m=scanner.nextInt();
        int n=scanner.nextInt();
        Deque<Integer> deque=new ArrayDeque<>();
        int ans=0;
        int length=0;
        for(int i=0;i<n;i++){
            int t=scanner.nextInt();
            if(!deque.contains(t)&&length<m){
                deque.add(t);
                ans++;
                length++;
            }else if(deque.contains(t)){
                continue;
            }else if(!deque.contains(t)&&length>=m){
                deque.pop();
                deque.add(t);
                length++;
                ans++;
            }
        }
        System.out.println(ans);
    }
}

一点都不优雅的代码,没怎么用过Java中的队列... 


http://www.kler.cn/a/596940.html

相关文章:

  • 批量图片压缩工具,高效减小文件大小并保持质量
  • python:music21 构建 LSTM+GAN 模型生成爵士风格音乐
  • SpringBoot+VUE(Ant Design Vue)实现图片下载预览功能
  • 仿函数 VS 函数指针实现回调
  • 存算分离是否真的有必要?从架构之争到 Doris 实战解析
  • 关于网络中的超参数小记
  • RTOS系列文章(17)-- 为什么RTOS选择PendSV实现任务切换?(从硬件机制到RTOS设计的终极答案)
  • NocoBase 本周更新汇总:优化表格区块的列和操作
  • Vue 中的日期格式化实践:从原生 Date 到可视化展示!!!
  • 青少年编程与数学 02-011 MySQL数据库应用 10课题、记录的操作
  • 【微服务架构】SpringCloud(二):Eureka原理、服务注册、Euraka单独使用
  • 蓝桥杯备考:二分答案之路标设置
  • 掌握新编程语言的秘诀:利用 AI 快速上手 Python、Go、Java 和 Rust
  • AI大白话(六):强化学习——AI如何通过“试错“成为大师?
  • 隋卞做 隋卞一探 视频下载
  • 配置DHCP(centos+OUS)
  • QHDBO基于量子计算和多策略融合的蜣螂优化算法
  • Fiddler抓包工具最快入门
  • 人工智能之数学基础:矩阵条件数在线性方程组求解中的应用
  • 律师解读《无人驾驶航空器飞行管理暂行条例》第二十二条