单词

Leetcode题解 0019期

匿名 (未验证) 提交于 2019-12-03 00:30:01
我要调作息! 题目: 给定两个二进制字符串,返回他们的和(用二进制表示)。 输入为非空字符串且只包含数字 1 和 0。 示例: 输入: a = "11" , b = "1" 输出: "100" 输入: a = "1010" , b = "1011" 输出: "10101" 题目相对严谨 无需注意太多 解题思路: 这题就是进位而已,python3可以尝试使用eval函数来解决,2333,如此简单,不post代码。 或者可以使用python3中int函数可以传入的另一个参数base,直接转化。另外python3的 bin 、 oct 、 hex 这些函数的返回值都属于str类型,所以可以直接slicing。 题目: 给定一个单词数组和一个长度 maxWidth,重新排版单词,使其成为每行恰好有 maxWidth 个字符,且左右两端对齐的文本。 你应该使用 “贪心算法” 来放置给定的单词;也就是说,尽可能多地往每行中放置单词。必要时可用空格 ' ' 填充,使得每行恰好有 maxWidth 个字符。 要求尽可能均匀分配单词间的空格数量。如果某一行单词间的空格不能均匀分配, 则左侧放置的空格数要多于右侧的空格数。 文本的最后一行应为左对齐,且单词之间不插入额外的空格。 说明: 单词是指由非空格字符组成的字符序列。 每个单词的长度大于 0,小于等于 maxWidth。 输入单词数组 words

笨小猴

匿名 (未验证) 提交于 2019-12-03 00:30:01
笨小猴 笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大! 这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那么笨小猴就认为这是个Lucky Word,这样的单词很可能就是正确的答案。 Input Description 输入文件只有一行,是一个单词,其中只可能出现小写字母,并且长度小于100。 Output Description 输出文件共两行,第一行是一个字符串,假设输入的的单词是Lucky Word,那么输出“Lucky Word”,否则输出“No Answer”; 第二行是一个整数,如果输入单词是Lucky Word,输出maxn-minn的值,否则输出0。 Sample s INPUT 1 error OUTPUT 1 Lucky Word 2 INPUT 2 olympic OUTPUT 2 No Answer 0 Hint 【输入输出样例1解释】 单词error中出现最多的字母r出现了3次,出现次数最少的字母出现了1次,3-1=2,2是质数。 【输入输出样例2解释】 单词olympic中出现最多的字母出现了1次,出现次数最少的字母出现了1次,1-1=0,0不是质数。 示例代码:

C/C++[codeup 1805]首字母大写

匿名 (未验证) 提交于 2019-12-03 00:29:01
1805题目描述 对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。 在字符串中,单词之间通过空白符分隔,空白符包括:空格(’ ‘)、制表符(‘\t’)、回车符(‘\r’)、换行符(‘\n’)。 输入 输入一行:待处理的字符串(长度小于100)。 输出 可能有多组测试数据,对于每组数据, 输出一行:转换后的字符串。 样例输入 if so, you already have a google account. you can sign in on the right. 样例输出 If So, You Already Have A Google Account. You Can Sign In On The Right. 注意 : 字符串中包含空格,制表符,回车符等等,所以用gets或fgets()来输入 . gets() ,fgets(),以’\n’判断输入结束,同时将换行符号写入字符串. 思路:首先字符串首字符,islower()判断是否小写,是改为大写.然后从索引1开始遍历字符串,发现空格或者其他单词间隔的字符,signal = 1; 跳出循环.判断下个字符是否同时满足,小写&&signal == 1(该字符为单词首字母),如果是,signal = 0; 改为大写.如果首字母是大写,只修改signal =0; 如此这般,遍历完即可.

PTA7-32 说反话-加强版(20 分)超级详解

匿名 (未验证) 提交于 2019-12-03 00:26:01
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用若干个空格分开。 输出格式: 每个测试用例的输出占一行,输出倒序后的句子,并且保证单词间只有1个空格。 输入样例: 输出样例: Come I Here World Hello 本人此题完全通过总共花了145 min,前40min内早已得到19分,但还是差1分在输出格式上,光想这一个1分的测试点就花了几十分钟,然后以为是除了单词和单词间的空格其他两头的空格如果有的话都要输出,又花几十分钟写了一个算法,结果测试都是错,又花了几十分钟反思总结,终于写出正确的算法。。 本题的难点在于如何处理多个空格,以及最难的,如果处理最后一个单词的输出并保证之后完全没有空格。先来分析下本题,读题,首先抓细节,本题的细节整理如下: 1.英语,说明只有字母。 2.句中所有单词的顺序颠倒输出,即如果将每个单词看成一个数组内的元素,那么就是从数组末端输出到前端,而不是将单词内的字母倒序,主语是“句子”,所以是将“句子”这个“组”内的各个“元素”倒序输出,“元素”内的内容当然不会改变。 3.字符串由若干个单词和空格组成,说明输入会有很多空格,c++语言用getline来接收空格

【HDU 2072 单词数】 字典树/SET

匿名 (未验证) 提交于 2019-12-03 00:26:01
HDU2072 题意就是出现的不同单词个数 直接把字符全部插入Trie树中,然后统计所有具有flagg标记的节点个数就好了。 也可以边插入边统计,如果当前字符串结尾下标已经被标记,就不对答案做贡献,否则ans++. HDU 2072 代码 #include <stdio.h> #include <iostream> #include <string.h> #include <sstream> using namespace std ; const int maxn = 2e6 + 5 ; int tree [ maxn ][ 30 ]; bool flagg [ maxn ]; int tot ; void insert_ ( string str ) { int len = str . size (); int root = 0 ; for ( int i = 0 ; i < len ; i ++) { int id = str [ i ]- 'a' ; if (! tree [ root ][ id ]) tree [ root ][ id ]=++ tot ; root = tree [ root ][ id ]; } flagg [ root ]= true ; } bool find_ ( string str ) { int len = str . size ();

【HDU 1247 Hat’s Words】字典树(Trie树)

匿名 (未验证) 提交于 2019-12-03 00:26:01
HDU1247 本题题意是问你某个单词是否可以拆成单词表中的其他两个单词。 我们可以建两颗Trie树,然后分别正序倒序插入每个单词,对每个单词查询的时候,我们分别正序倒序查询,对出现过单词的前缀下表进行标记,对每个出现过单词的后缀进行标记,最后扫描标记数组,如果某个位置前缀后缀均被标记过,则表示可以拆成单词表中的两个其他单词。 HDU1247代码 #include <stdio.h> #include <iostream> #include <string.h> #include <sstream> #include <set> using namespace std ; const int maxn = 2e6 + 5 ; int tree [ maxn ][ 30 ], tree2 [ maxn ][ 30 ]; set < string > s ; bool flagg [ maxn ], flagg2 [ maxn ]; int sum [ 55 ]; int tot , tot2 ; void insert_ ( char * str ) { int len = strlen ( str ); int root = 0 ; for ( int i = 0 ; i < len ; i ++) { int id = str [ i ]- 'a' ; if (! tree [

单词替换

匿名 (未验证) 提交于 2019-12-03 00:26:01
题目描述 输入一个字符串,以回车结束(字符串长度<=100)。该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写。现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。 输入 多组数据。每组数据输入包括3行, 第1行是包含多个单词的字符串 s, 第2行是待替换的单词a,(长度<=100) 第3行是a将被替换的单词b。(长度<=100) s, a, b 最前面和最后面都没有空格。 输出 每个测试数据输出只有 1 行, 将s中所有单词a替换成b之后的字符串。 样例输入 I love Tian Qin I You 样例输出 You love Tian Qin 先gets输入第一行,然后把每个单词依次存在二位字符数组里(不直接用scanf存,是因为空格换行都可以作为scanf的结束标志,它可以把下一行的字符也存进去),然后再输出。输出时strcmp判断,为0,则替换。 #include<cstdio> #include<cstring> int main() { char s[ 110 ]; while (gets_s(s) != NULL) { char ans[ 110 ][ 110 ]; char a[ 110 ], b[ 110 ]; scanf ( "%s %s" , a, b); int i = 0 , j = 0 , k = 0 ; while

CodeForces - 499 B Lecture (ģ)

匿名 (未验证) 提交于 2019-12-03 00:19:01
题目链接: 点击打开链接 题意:大致题意:就是给你m行,然后每一行有两个不超过十个字符仅由小写字母组成的单词,之后再在m行后输入n个单词,占用一行,然后输出最后一行的每个单词各自所在的那一行较短的单词,中间空格隔开,保证每个单词都不相同。 题解:模拟+string+map就能过去了 看代码: #include<bits/stdc++.h> using namespace std; //大致题意:就是给你m行, //然后每一行有两个不超过十个字符仅由小写字母组成的单词, //之后再在m行后输入n个单词, //占用一行, //然后输出最后一行的每个单词各自所在的那一行较短的单词, //中间空格隔开, //保证每个单词都不相同 map<string ,string> mp; int main(){ int n,m; mp.clear(); cin >> n >> m; for(int i = 0 ; i < m ; i ++){ string a; string b; cin >> a; cin >> b; string c = a.size() <= b.size() ? a : b; mp[a] = c; mp[b] = c; } for(int i = 0 ; i < n; i ++){ string a; cin >> a; cout << mp[a] << " "; }

关于TXT文件中英文单词出现频率排序问题

匿名 (未验证) 提交于 2019-12-03 00:17:01
题目要求:   指定文件目录, 但是会递归遍历目录下的所有子目录,输出文件中所有不重复的单词,按照出现次数由多到少排列。 源码:    package word; import java.io.FileInputStream; import java.util.Arrays; import java.util.List; import java.util.StringTokenizer; } 来源:博客园 作者: 周广阔 链接:https://www.cnblogs.com/zgk666/p/11804912.html