字符串处理
文章平均质量分 68
chen_minghui
这个作者很懒,什么都没留下…
展开
-
cin>> , cin.getline() 的区别 ,cin.ignore() 缓冲区等知识深入
在做杭电OJ1048题时,首先要输入一串"START"字符串,表示翻译的开始,随后用的是 cin.getline()函数来获取一段字符串,但是发现并没有读到字符串,用strlen函数检查后发现长度为0,在网上搜索了大量资料才有了头绪。错误的情形类似下面代码,每次用strlen函数测得数组长度为0.#include#includeusing namespace std;int main(){原创 2016-07-18 14:50:20 · 631 阅读 · 0 评论 -
hdoj HDU 1002 A + B Problem II 大数相加
PE了6次,ACM中Output a blank line between two test cases. 是指每个输出之间有空行,在输出循环中,要给条件判断是不是最后一次输出。#include#includeusing namespace std;int main(){ string s1, s2,str1,str2; char rt[2000]; int t,carry; c原创 2016-07-31 17:57:44 · 359 阅读 · 0 评论 -
codeforces 798a Mike and palindrome 水题
题意:给定一个串问,是否能够精确的修改一个字母使得串变成回文串。没看清楚题目,第一次wa是没有限定只修改一个字母,第二次wa没有考虑长度为奇数时,且本身为回文串时,中间的字符可以任意改。思路很简单,关键是要考虑全面#include#include#include#includeusing namespace std;int main(){ string str; while原创 2017-05-01 20:15:05 · 336 阅读 · 0 评论 -
codeforces B. Mike and strings 暴力+字符串
题意:给定n个字符串,可以进行一个这样的操作,将第一个字符移动到最后一个字符的后面,可以形成一个新的字符串,如:name进行一次操作,得到amen。求出最小移动次数,使得n个串相等,如果做不到,输出-1,否则输出次数。思路:每次选定一个串为目标串,其他的串为测试串,将测试串移动,使得所有串相等,求得最小。如果移动了长度个单位,说明不管进行多少次移动,都无法是的所有串相等,这时是-1#inc原创 2017-04-30 20:56:10 · 504 阅读 · 0 评论 -
uva11988 broken keyboard (悲剧文本)
你有一个破损的键盘,所有键都能正常工作,但是home 和 end键有时会自动按下,你并不知道这一问题的存在,专心打稿子,甚至屏幕都没有开,当你打开屏幕时,屏幕上是悲剧文本,你的任务是计算出这段悲剧文本。样例输入This_is_a_[Beiju]_text [[]][][]Happy_Birthday_to_Tsinghua_University样例输出BeijuThis_is_原创 2017-01-19 13:27:01 · 597 阅读 · 0 评论 -
hdu 1015 Safecracker (dfs)
题意:输入一个数n,一个字符串,字符串得长度大于等于5小于等于12,且均是大写字母,A 代表 1 B代表 2...求满足n = A - B ^2 + C^3 - D^4 + E^5 - F^6 ,得5个字母 。思路:遍历每个字母,用一个数组记录哪些选入字母选入,和选入的次序,因为次序影响结果,由于要找到字典序最大的,先对字符串升序排,然后从字符串最后找,找到的第一个即为答案,用ex变量记原创 2016-10-08 18:12:43 · 443 阅读 · 0 评论 -
codeforce 697B Barnicle
题目大意:输入一个科学计数法表示的数字,这个数字没有前导0,形如:a.deb (0 ≤ a ≤ 9, 0 ≤ d 100, 0 ≤ b ≤ 100)。要求输出正常的表示方法,格式要求如果是整数则不能有小数点。http://codeforces.com/problemset/problem/697/B#include#includeusing namespace std;int nu原创 2016-09-29 19:14:15 · 343 阅读 · 0 评论 -
杭电OJ 1251 统计难题 字典树入门
看到这道题的时候以为挺简单的,以为先将串分别存储在vector里,在拿出来遍历比较,但事实是很难这样实现。后来查看别人AC的答案才知道要用字典树处理。这道题也是运用字典树处理简单的问题。很多单词,这些单词只含小写字母,并且不会有重复的单词出现。字典树,又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引原创 2016-07-21 13:12:56 · 637 阅读 · 0 评论 -
hdoj 1047 Integer Inquiry
也是属于大数求和的问题,只是是输入多行数据,多行想加,与1003的区别是这里的进位carry可能超过10,carry注意处理,还有就是只输入一行和一行都不输入直接输入0的特殊情况。比较坑的是格式问题,看半天没看懂输入输出格式。输入第一行是一个整数,表示有几个输入块,每个输入块结束的标志为0,每块之间要有一个空行,最后一块,输出后也要换行。题目:http://acm.hdu.edu.cn/sho原创 2016-08-10 13:37:25 · 293 阅读 · 0 评论 -
字符串处理:多条件筛选
杭电1039:题目大意:输入一串小写字母,检查是否能够作为安全的密码使用。能作为安全密码的字符串符合三个条件:1.它必须包含至少一个元音。 2.它不能包含三个连续的元音或三个连续的辅音。 3.它不能包含两个连续的相同的字母,除了“EE”或“oo”。#include#includeusing namespace std;bool原创 2016-08-03 15:56:13 · 1609 阅读 · 0 评论 -
hdoj2565 放大的X ;有关for循环的
http://acm.hdu.edu.cn/showproblem.php?pid=2565#include#includeusing namespace std;int main(){ int t; int a; cin >> t; while (t--){ cin >> a; for (int n = 0; n < a / 2; n++){ //上部原创 2016-07-30 11:53:25 · 344 阅读 · 0 评论 -
杭电OJ 1803 Deli Deli
Problem DescriptionMrs. Deli is running the delicatessen store "Deli Deli". Last year Mrs. Deli has decided to expand her business and build up an online store. She has hired a programmer who has im原创 2016-07-25 15:31:12 · 378 阅读 · 0 评论 -
杭电hdOJ1982 Kaitou Kid - The Phantom Thief (1)
#include#includeusing namespace std;int main(){ int t; string s,str; cin >> t; while (t--){ cin >> s; for (int n = 0; n < s.size(); n++){ if (s[n] == '-') continue; if (s[n] == '#原创 2016-07-25 18:16:50 · 378 阅读 · 0 评论 -
杭电OJ1020 Encoding
借用了插入排序的思想,遍历整个字符串,用一个p来计字母连续出现的次数,一遇到相邻两个字符不同的情况,便输出个数和字母,直到整个字符串遍历完成。为了简化代码,在字符串最后添加了一个非字母字符,会使得最后一个字母总是和下一个字符不想等而进入else。#include#include using namespace std;int main(){ static char a[10001];原创 2016-07-19 15:04:26 · 472 阅读 · 0 评论 -
杭电OJ1062 Text Reverse
#includeusing namespace std;int main(){ int t,i; char a[1000],p; cin >> t; cin.ignore(1, '\0'); while (t--){ i = -1; cin.getline(a, 1000); for (int n = 0; n <=strlen(a); n++){ i++;原创 2016-07-19 17:16:25 · 622 阅读 · 0 评论 -
杭电oj DNA Sorting
题目: 说明一种计量串列的“无序”程度的方式是,有关联的两个彼此呈无序状态的词条(entries 我不知道这样翻译行不)的对数。比如,在字符串“DAABEC”中,它的(无序)量度值是5,因为D比四个在他右边的字母都要大,然后E又比一个在其右边的字母大(解释一下,他这里的有序意思是按ABCD升序排列,如果降序就算无序,那么D在AABC前面就算四对无序entries了,加上EC就是舞对了)。这原创 2016-07-25 10:55:59 · 518 阅读 · 0 评论 -
hdoj1321 Reverse Text
#include#includeusing namespace std;int main(){ int t; cin >> t; cin.ignore(1, '\0'); string s; while (t--){ getline(cin,s); char ch; for (int n = 0; n < s.size()/2; n++){ ch = s[n];原创 2016-07-24 16:21:44 · 287 阅读 · 0 评论 -
CodeForces 801A Vicious Keyboard 模拟
题意:给定一个只含V和K两个字符的字符串。要求最多变化一个,从V到K,或者从K到V,最多能组成多少个VK 子串。思路:长度只有100,暴力枚举每个字符变化,再求VK子串的数目,取其中最大的。#include#include#include#includeusing namespace std;int getvk(string s){ int n=s.size(); int原创 2017-05-01 20:54:55 · 316 阅读 · 0 评论