单词

单词数 (HashSet)

元气小坏坏 提交于 2020-01-24 06:06:37
https://vjudge.net/contest/352887#problem/D lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数。下面你的任务是帮助xiaoou333解决这个问题。 Input 有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束。 Output 每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。 Sample Input you are my friend # Sample Output 4 注意:多个空格连在一起的时候,不能用str.split(" "); import java.util.*; public class Main { static Scanner sc=new Scanner(System.in); static Set<String> se=new HashSet<String>(); public static void main(String[] args) { String str; while(sc.hasNext()) { str=sc.nextLine(); if(str.equals("#")) break; String ss=str.replaceAll(" +",",");

[模拟题]leetcode5316: 竖直打印单词(medium)

你离开我真会死。 提交于 2020-01-24 03:24:05
题目: 题解: 模拟题 第一步:利用istringstream分割字符串,然后找到最长单词的长度,这样可以就确定结果数组的大小了。 第二步:还是利用istringstream分割单词,单词长度不足最长长度的在后面补空格。 第三步:遍历res,删除每个单词尾部的空格。 代码如下: class Solution { public : vector < string > printVertically ( string s ) { istringstream str ( s ) ; string word ; int length = 0 ; //1、利用istringstream分割字符串来获得单词的最长长度 while ( str >> word ) { length = max ( length , int ( word . size ( ) ) ) ; } vector < string > res ( length ) ; istringstream str1 ( s ) ; //2、利用istringstream分割字符串来添加单词,不够最长长度的补空格 while ( str1 >> word ) { int size = word . size ( ) ; for ( int i = 0 ; i < length ; ++ i ) { if ( i < size ) {

词组缩写

二次信任 提交于 2020-01-23 18:06:29
题目描述 定义:一个词组中每个单词的首字母的大写组合称为该词组的缩写。 比如,C语言里常用的EOF就是end of file的缩写。 输入 输入的第一行是一个整数T,表示一共有T组测试数据。 接下来有T行,每组测试数据占一行,每行有一个词组,每个词组由一个或多个单词组成;每组的单词个数不超过10个,每个单词有一个或多个大写或小写字母组成; 单词长度不超过10,由一个或多个空格分隔这些单词。 输出 请为每组测试数据输出规定的缩写,每组输出占一行。 样例输入 Copy 1 end of file 样例输出 Copy EOF 代码如下: # include <iostream> # include <algorithm> # include <vector> # include <string> # include <math.h> using namespace std ; int main ( ) { int t ; cin >> t ; getchar ( ) ; while ( t -- ) { string s , sans ; getline ( cin , s ) ; int len , num = 0 ; len = ( int ) s . size ( ) ; if ( s [ 0 ] >= 'a' && s [ 0 ] <= 'z' ) { s [ 0 ] - =

1185:单词排序

岁酱吖の 提交于 2020-01-23 00:54:49
http://ybt.ssoier.cn:8088/problem_show.php?pid=1185 源代码 #include<iostream> #include<vector> #include<set> using namespace std; int main() { int n, i; string h; vector<string>v; set<string>s; while (cin >> h) { v.push_back(h); } s.insert(v.begin(), v.end()); set<string>::iterator it = s.begin(); for (; it != s.end(); it++) cout << *it << endl; return 0; } 1185:单词排序 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 6875 通过数: 3470 【题目描述】 输入一行单词序列,相邻单词之间由1个或多个空格间隔,请按照字典序输出这些单词,要求重复的单词只输出一次。(区分大小写) 【输入】 一行单词序列,最少1个单词,最多100个单词,每个单词长度不超过50,单词之间用至少1个空格间隔。数据不含除字母、空格外的其他字符。 【输出】 按字典序输出这些单词,重复的单词只输出一次。 【输入样例】 She wants

洛谷P2412 查单词 [trie树 RMQ]

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-22 09:16:41
题目背景 滚粗了的HansBug在收拾旧英语书,然而他发现了什么奇妙的东西。 题目描述 udp2.T3如果遇到相同的字符串,输出后面的 蒟蒻HansBug在一本英语书里面找到了一个单词表,包含N个单词(每个单词内包含大小写字母)。现在他想要找出某一段连续的单词内字典序最大的单词。 输入输出格式 输入格式: 第一行包含两个正整数N、M,分别表示单词个数和询问个数。 接下来N行每行包含一个字符串,仅包含大小写字母,长度不超过15,表示一个单词。 再接下来M行每行包含两个整数x、y,表示求从第x到第y个单词中字典序最大的单词。 输出格式: 输出包含M行,每行为一个字符串,分别依次对应前面M个询问的结果。 输入输出样例 输入样例#1: 5 5 absi hansbug lzn kkk yyy 1 5 1 1 1 2 2 3 4 4 输出样例#1: yyy absi hansbug lzn kkk 说明 样例说明: 第一次操作:在{absi,hansbug,lzn,kkk,yyy}中找出字典序最大的,故为yyy 第二次操作:在{absi}中找出字典序最大的,故为absi 第三次操作:在{absi,hansbug}中找出字典序最大的,故为hansbug 第四次操作:在{hansbug,lzn}中找出字典序最大的,故为lzn 第五次操作:在{kkk}中找出字典序最大的,故为kkk 数据规模:

127. 单词接龙

半城伤御伤魂 提交于 2020-01-22 07:47:28
给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下规则: 每次转换只能改变一个字母。 转换过程中的中间单词必须是字典中的单词。 说明: 如果不存在这样的转换序列,返回 0。 所有单词具有相同的长度。 所有单词只由小写字母组成。 字典中不存在重复的单词。 你可以假设 beginWord 和 endWord 是非空的,且二者不相同。 示例 1: 输入: beginWord = "hit", endWord = "cog", wordList = ["hot","dot","dog","lot","log","cog"] 输出: 5 解释: 一个最短转换序列是 "hit" -> "hot" -> "dot" -> "dog" -> "cog", 返回它的长度 5。 示例 2: 输入: beginWord = "hit" endWord = "cog" wordList = ["hot","dot","dog","lot","log"] 输出: 0 解释: endWord "cog" 不在字典中,所以无法进行转换。 解题思路 广度优先搜索,先对输入进行预处理,每次将wordlist中的一个词中改变一个字母,使用*代替,得到其中间状态,并将每一个能够到达这个中间状态的词使用字典保存起来。

C语言博客作业—字符数组

[亡魂溺海] 提交于 2020-01-22 02:55:06
一、PTA实验作业 题目1:字符串转换成十进制整数 1. 本题PTA提交列表 2. 设计思路 (1)定义i为循环变量,number用于存放每一次转化的结果,flag用于判断是否为负数,p用于修改结果的正负; (2)定义字符型数组hexad,并输入字符串; (3)for( from i=0 to hexad[i]!='#' ) //遍历数组 if(hexad[i]为'-'且flag为零0) //说明还没有遇到第一个十六进制字符 则结果为负数; if(hexad[i]在'0'到'9'之间) //挑出十六进制字符,转成相应的十进制 number=number*16+hexad[i]-48,flag=1; else if(hexad[i]在'A'到'F'之间) number=number*16+hexad[i]-55,flag=1; else if(hexad[i]在'a'到'f'之间); number=number*16+hexad[i]-87,flag=1; end (4)输出结果 3.代码截图。 4.本题调试过程碰到问题及PTA提交列表情况说明。 一开始的思路是不太理解符号的判断规则所以想用另一个字符数组存放筛选过的字符串,然后再进行转换;但是没有办法判断好符号,所以去看了一下别的代码是怎么判断这个地方的,然后就引用了一个p来直接决定结果的正负; 而且这样就不需要两个字符数组了

P1101 单词方阵(C++)

会有一股神秘感。 提交于 2020-01-21 16:49:15
题目描述 给一n×n的字母方阵,内可能蕴含多个“yizhong”单词。单词在方阵中是沿着同一方向连续摆放的。摆放可沿着 8 个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间可以交叉,因此有可能共用字母。输出时,将不是单词的字母用*代替,以突出显示单词。例如: 输入: 8 输出: qyizhong * yizhong gydthkjy gy * * * * * * nwidghji n * i * * * * * orbzsfgz o * * z * * * * hhgrhwth h * * * h * * * zzzzzozo z * * * * o * * iwdfrgng i * * * * * n * yyyygggg y * * * * * * g 输入格式 第一行输入一个数n。(7≤n≤100)。 第二行开始输入n×n的字母矩阵。 输出格式 突出显示单词的n×n矩阵。 输入输出样例 输入 #1 7 aaaaaaa aaaaaaa aaaaaaa aaaaaaa aaaaaaa aaaaaaa aaaaaaa 输出 #1 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 输入 #2 8 qyizhong

二、竖直打印单词(Weekly Contest 172)

时光毁灭记忆、已成空白 提交于 2020-01-20 00:47:05
题目描述: 给你一个字符串 s。请你按照单词在 s 中的出现顺序将它们全部竖直返回。 单词应该以字符串列表的形式返回,必要时用空格补位,但输出尾部的空格需要删除(不允许尾随空格)。 每个单词只能放在一列上,每一列中也只能有一个单词。 示例 1: 输入:s = “HOW ARE YOU” 输出:[“HAY”,“ORO”,“WEU”] 解释:每个单词都应该竖直打印。 “HAY” “ORO” “WEU” 示例 2: 输入:s = “TO BE OR NOT TO BE” 输出:[“TBONTB”,“OEROOE”," T"] 解释:题目允许使用空格补位,但不允许输出末尾出现空格。 “TBONTB” “OEROOE” " T" 示例 3: 输入:s = “CONTEST IS COMING” 输出:[“CIC”,“OSO”,“N M”,“T I”,“E N”,“S G”,“T”] 提示: 1 <= s.length <= 200 s 仅含大写英文字母。 题目数据保证两个单词之间只有一个空格。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/print-words-vertically 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 class Solution { public List<String>

笨小猴

谁说我不能喝 提交于 2020-01-19 16:49:41
描述 笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大! 这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那么笨小猴就认为这是个Lucky Word,这样的单词很可能就是正确的答案。 输入 只有一行,是一个单词,其中只可能出现小写字母,并且长度小于100。 输出 共两行,第一行是一个字符串,假设输入的的单词是Lucky Word,那么输出“Lucky Word”,否则输出“No Answer”; 第二行是一个整数,如果输入单词是Lucky Word,输出maxn-minn的值,否则输出0。 样例输入 样例 #1: error 样例 #2: olympic 样例输出 样例 #1: Lucky Word 2 样例 #2: No Answer 0 # include <iostream> //以字母弄一个记录其次数的数组 # include <cstring> # include <cmath> # include <algorithm> using namespace std ; char s [ 100 ] ; int a [ 30 ] = { 0 } ; int prime ( int x )