单词

机器翻译(queue)

六眼飞鱼酱① 提交于 2020-01-17 02:34:02
题目背景 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。 题目描述 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续的查找和翻译。 假设内存中有MMM个单元,每单元能存放一个单词和译义。每当软件将一个新单词存入内存前,如果当前内存中已存入的单词数不超过M−1M-1M−1,软件会将新单词存入一个未使用的内存单元;若内存中已存入MMM个单词,软件会清空最早进入内存的那个单词,腾出单元来,存放新单词。 假设一篇英语文章的长度为NNN个单词。给定这篇待译文章,翻译软件需要去外存查找多少次词典?假设在翻译开始前,内存中没有任何单词。 输入格式 共222行。每行中两个数之间用一个空格隔开。 第一行为两个正整数M,NM,NM,N,代表内存容量和文章的长度。 第二行为NNN个非负整数,按照文章的顺序,每个数(大小不超过100010001000)代表一个英文单词。文章中两个单词是同一个单词,当且仅当它们对应的非负整数相同。 输出格式 一个整数,为软件需要查词典的次数。 输入输出样例 输入 #1 3 7 1 2 1 5 4 4 1 输出 ``

算法提高 最长单词

杀马特。学长 韩版系。学妹 提交于 2020-01-16 04:19:51
算法提高 最长单词 编写一个函数,输入一行字符,将此字符串中最长的单词输出。 输入仅一行,多个单词,每个单词间用一个空格隔开。单词仅由小写字母组成。所有单词的长度和不超过100000。如有多个最长单词,输出最先出现的。 输入格式: 输入一行字符串 输出格式: 输出最长字符 输入样例: 在这里给出一组输入。例如: I am a student 输出样例: 在这里给出相应的输出。例如: student 方法: 这道题的核心在于怎么把每个单词分开,通过sstream字符流可以很方便的把单词分开,分开后就直接对比每个单词的长度即可 代码: # include <iostream> # include <string> # include <sstream> # include <vector> using namespace std ; int main ( ) { string s , t ; getline ( cin , s ) ; stringstream ss ( s ) ; vector < string > arr ; while ( ss >> t ) { arr . push_back ( t ) ; } t = arr [ 0 ] ; for ( int i = 1 ; i < arr . size ( ) ; i ++ ) { if ( arr [ i ] .

7-2 单词排序(java sort快排)

…衆ロ難τιáo~ 提交于 2020-01-16 03:30:35
7-2 单词排序 (10分) 请编写程序,输入一系列单词,然后按字典顺序排序,最后输出结果。 输入格式 第一行为单词的数量 n (0<n<10000),后面有 n 行,每行一个英文单词(均由小写字母组成,且长度均不超过15个英文字母) 输出格式 共 n 行,每行一个英文单词(按字典顺序排列) 输入样例 3 stick stock stack 输出样例 stack stick stock 题意:很明确 题解:这个题卡输入输出,其实到1e5的数据java读入就很慢啦~~注意!此题就是简单快排~~~直接看代码吧! 上代码: import java.io.*; import java.util.*; public class Main { static class FastScanner{//用于快速读入大量数据 BufferedReader br; StringTokenizer st; public FastScanner(InputStream in) { br = new BufferedReader(new InputStreamReader(in),16384); eat(""); } public void eat(String s) { st = new StringTokenizer(s); } public String nextLine() { try {

PAT乙级B009 说反话

你。 提交于 2020-01-13 04:03:05
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。 输出格式: 每个测试用例的输出占一行,输出倒序后的句子。 输入样例: Hello World Here I Come 输出样例: Come I Here World Hello 大框架逆序 小框架正序 可以采用栈和队列,也可以开一个数组记录 pat中gcc仍然保留gets()可用 1.建一个栈内队列的结构体 #include <stdio.h> #include <string.h> const int max = 81; struct ST { char qu[max]; int front; int rear; }st[max]; int main() { char str[max]; gets(str); int len = strlen(str); int top = 0; for (int i = 0; i < max; i++)//初始化栈中队列 { st[i].front = st[i].rear = 0; } for (int i = 0; i < len; i++) { if

英语单词学习窗体(一)

梦想与她 提交于 2020-01-13 02:23:50
想背英语单词,于是尝试写个WinForm窗体,将单词录入数据库(好记心不如烂笔头,敲键盘也可以吧,边录入,边记). 1.软件用的是VS2010,首先创建解决方案,创建Windows窗体应用程序: 2.创建一个录入单词的窗体,添加相应的textbox、button、label. 3.我是按照单词本添加的,依次添加英语、汉语、对单词首字母及对应页数中间用.隔开, 相应的Name是txtEnglish、txtChinese、txtMemo,因为要多次用的这里新建了一个StrudyEnglish.Model类, public class EnglishMDL {   private string english;   private string chinese;   private string memo;   public string English   {     get { return english; }     set { english = value; }   }   public string Chinese   {     get { return chinese; }     set { chinese = value; }   }   public string Memo   {     get { return memo; }     set { memo =

英语必修二人教版U2单词表

人盡茶涼 提交于 2020-01-12 21:58:39
$ poster $ $ illegal $ $ illegally $ $ hunt $ $ hunter $ $ immediately $ $ species $ $ shark $ $ fin $ $ on $ $ earth $ $ die $ $ out $ $ alarming $ $ alarm $ $ rate $ $ rating $ $ extinct $ $ extinction $ $ mass $ $ habitat $ $ aware $ $ aware $ $ of $ $ endanger $ $ average $ $ prince $ $ make $ $ progress $ $ concern $ $ concerned $ $ concerned $ $ about $ $ living $ $ adapt $ $ adapt $ $ to $ $ measure $ $ authority $ $ pressure $ $ under $ $ pressure $ $ whale $ $ antelope $ $ Tibetan $ $ antelpoe $ $ reserve $ $ plain $ $ make $ $ out $ $ herd $ $ observe $ $ beauty $ $ remind $ $ remind

蓝桥杯 ALGO-91 算法训练 Anagrams问题

谁说我不能喝 提交于 2020-01-12 19:37:45
算法训练 Anagrams问题 时间限制:1.0s 内存限制:512.0MB 问题描述   Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的。例如,“Unclear”和“Nuclear”、“Rimon”和“MinOR”都是Anagrams。编写一个程序,输入两个单词,然后判断一下,这两个单词是否是Anagrams。每一个单词的长度不会超过80个字符,而且是大小写无关的。   输入格式:输入有两行,分别为两个单词。   输出格式:输出只有一个字母Y或N,分别表示Yes和No。   输入输出样例 样例输入 Unclear Nuclear 样例输出 Y #include <stdio.h> #include <string.h> int main() { char word1[82] = { 0 }, word2[82] = { 0 }; scanf("%s", word1); scanf("%s", word2); int len1 = (int)strlen(word1); int len2 = (int)strlen(word2); if (len1 != len2) printf("N"); else { int statistic1[26] = { 0 }, statistic2[26] = { 0 };

揭开自然拼读法(Phonics)的神秘面纱

♀尐吖头ヾ 提交于 2020-01-12 04:38:27
揭开自然拼读法(Phonics)的神秘面纱 自然拼读法 (Phonics),是指看到一个单词,就可以根据英文字母在单词里的发音规律把这个单词读出来的一种方法。即从“字母发音-字母组合发音-单词-简单句 子-整段句子”逐步学习,让孩子轻松掌握“自然拼读”法,培养孩子正确的英语语感,打好英语学习的基础。在英语母语国家的幼儿园里,孩子们从三岁起,就开 始接受自然拼读法的学习了,这种方法是美国及很多英语母语国家孩子学习自己母语的方法。   自然拼读六阶成功法   第一阶:建立字母与字母自然发音之间的直接联系。   第二阶:能够成功拼读元音+辅音(辅音+元音)。如:c-a ca a-t at   第三阶:能够成功拼读辅音+元音+辅音。如d-o-g dog   第四阶:能够成功拼读双音节或多音节单词。如sw-ea-t-er sweater   第五阶:能够听音辨字,即听到单词读音就能拼出该单词。   第六阶:单词量大量扩充,能够阅读英语文章。   自然拼读学习步骤   步骤一:26个英文字母(alphabet letters)的发音-短音节   Phonics自然拼音,或叫“自然拼读法”更容易理解。拼读什么?就是看到英文字母或字母的组合能自然地读出、读对它的发音。这里,首先要区分“读 音”(Name)与“发音”(Sound)。A-Z的26个字母几乎大家都认识、都能念出来

实现英文单词MyWord类,为该类提供各种功能(加法、流插入、流提取、查找、替换)

ぐ巨炮叔叔 提交于 2020-01-11 16:08:22
实现英文单词MyWord类,为该类提供各种功能(加法、流插入、流提取、查找、替换); 由于需要查找等功能,在其中利用了容器,便于查找单词; 1 #include<iostream> 2 #include<vector> 3 #include<algorithm> 4 #include<cstring> 5 6 using namespace std; 7 8 class MyWord 9 { 10 private: 11 string data; 12 int length; 13 public: 14 MyWord(string data_ = "NULL",int length_ = 0):data(data_),length(length_) { } 15 MyWord(const MyWord & rhs); 16 bool operator == (const MyWord & rhs) 17 { return data == rhs.data; } 18 MyWord operator + (const MyWord & rhs); // + 运算符 19 friend ostream & operator << (ostream & os ,const MyWord & rhs); // << 流插入 20 friend istream & operator >>

79. 单词搜索

醉酒当歌 提交于 2020-01-11 02:52:57
链接 题目 . 难度: middle 解答: 这是一个典型的深度优先查找算法 package main import "fmt" func deepSearch ( travelled map [ int ] bool , board [ ] [ ] byte , i , j int , word string ) bool { if len ( word ) == 0 { return true } if i >= len ( board ) || i < 0 { return false } if j >= len ( board [ 0 ] ) || j < 0 { return false } pos := i * len ( board [ 0 ] ) + j if travelled [ pos ] { return false } if board [ i ] [ j ] != word [ 0 ] { return false } travelled [ pos ] = true fmt . Println ( "checking " , i , j , word ) res := deepSearch ( travelled , board , i + 1 , j , word [ 1 : ] ) || deepSearch ( travelled , board