
字符串类
文章平均质量分 76
流年冲淡时光
这个作者很懒,什么都没留下…
展开
-
给定俩个日期求有多少个2.29号
时间限制:2000ms单点时限:1000ms内存限制:256MB描述给定两个日期,计算这两个日期之间有多少个2月29日(包括起始日期)。只有闰年有2月29日,满足以下一个条件的年份为闰年:1. 年份能被4整除但不能被100整除2. 年份能被400整除输入第一行为一个整数T,表示数据组数。之后每组数据包含两行。每一行格式为"mont原创 2015-04-18 20:42:25 · 1161 阅读 · 0 评论 -
UVA644strstr的简单应用
这题用strstr相对来说思路清晰,代码也清晰:翻译 2014-10-18 11:00:28 · 471 阅读 · 0 评论 -
uva10878看清图
这题看清图那个是_而不是——,不然就一次A掉了#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;char s[20];int main(){ while(gets(s))翻译 2015-07-20 16:35:57 · 377 阅读 · 0 评论 -
strstr函数的被查找字符串与查找到的字符串是互相影响的,同时可以只用i--控制循环不变
这题刚开始写出来之后一直不知道哪里错了,就一部一部的dbug,最后终于发现原来strstr的被查找字符串改变会影响查找到的字符串,感觉自己写的不够简便,查了一些别人的,看到别人是用strstr函数的查找到的字符串会影响被查找的字符串的性质来写的,代码中注释部分是用被查找影响查找字符串的性质做的,比较麻烦,下面是用其逆性质来写的,比较简单,另外注意此题使用i--控制循环不变而不需要使用死原创 2015-07-20 20:59:48 · 1384 阅读 · 0 评论 -
cf559B字符串的最小表示法和递归的写法
这题有俩种做法,一种递归,一种字符串的最小表示法,刚开始自己写了一发递归,结果一个递归里面有俩个return 0,呵呵了。自己连正确的递归姿势都不会,其实可以把俩个return放到俩个函数里面。递归法:#include#include#include#include#include#include#include#include#include#include#in翻译 2015-07-23 21:12:55 · 599 阅读 · 0 评论 -
sscanf用法详解
sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: Int sscanf( string str, string fmt, mixed var1, mixed var2 ... ); int scanf( const char *format [,argument]... ); 说明: sscanf与scanf类似,都是用于输入的,只原创 2015-08-15 18:39:58 · 614 阅读 · 0 评论 -
UVA11111套娃匹配题,注意字符串流使用简化代码
开俩个栈,第二个栈用来判断外部容量是否大于内部容量,同时这题读入可以用字符串输入流,极大简化代码,注意toy必须成对输入,也就是不能有多余的负值,也不能有多余的正值,因为忘记判断多余的正值贡献了无数发WA。#include#include#include#include#include#include#include#include#include#include#原创 2015-08-19 20:26:55 · 524 阅读 · 0 评论 -
UVA表达式树的后序遍历和层次遍历和建树
太笨又太蠢,做的小白书后面的题,前面写的线性表部分的内容,就一直在想线性表的做法,想vector,想stack,结果是表达式树,建立二叉树根据后缀表达式,然后层次遍历一遍反转就行了。#include#include#include#include#include#include#include#include#include#include#include#inclu原创 2015-08-20 20:22:05 · 480 阅读 · 0 评论 -
小白书之困难的串回溯
如果一个字符串包含俩个相邻的重复子串,则称它是“容易的串”,其他串称为"困难的串“,输入正整数N和L,输出由前L个字符组成的,字典序第k小的困难的串。我们只需要判断当前串的后缀,而非所有的子串是否满足条件即可.#include#include#include#include#include#include#include#include#include#include原创 2015-09-11 21:20:23 · 649 阅读 · 2 评论 -
HDU5482给大小为k的字符集,求长度为n且有m个非空字串的串数目,构造
这题,起初看题解,以为要求贝尔数,后来看大神的代码看了很久很久才发现,并不是求什么贝尔数,什么斯特林数,就是一个构造题,记住一句话,名字只是一个代号。然后大神的代码,由于自己太弱,也看了很久很久才看懂,解释下各个变量的意思,sum数组:字符串长度为n且有s个不同字符构成的子集数目为t的串有多少。a数组是你要构造的长度为n的串,每一位都是一个数字,可能相同可能不同,取决于下面的最后面原创 2015-10-01 19:57:45 · 906 阅读 · 0 评论 -
UVA10001按照一定的规则三位一体转化字符串,给定字符串看能否转化出
这题重点就是题意很难理解,表示以我没有过四级的水平并不能理解,只能看了下题解:刚好有位大神写的比较详细,copy一下,原文地址:http://www.cnblogs.com/staginner/archive/2011/09/07/2169351.html这个题目大致的意思是这样的,一共有这样256个自动机,它们可以依据一个字符串当前的状态,并将其按某种法则转化成一个新的字符串,题目的原创 2015-10-03 16:41:37 · 567 阅读 · 0 评论 -
HDU5495求俩个1~n的数列按照相同的规则重排后的LCS
这题智商低,想了很久没有想到怎么做,其实想通了很简单,由于俩个数列都是1~n的排列,所以在每个位置的a[i]和b[i]建一条边,然后通过样例可以很明显看出来,建边之后会形成n多个环,而每个环视相互独立的,对于长度大于1的每个环都可以以牺牲一个值得代价取得最长公共子串。总有那么些巧妙地题是我这种智商低的想不到的。#include#include#include#include原创 2015-10-04 03:22:07 · 875 阅读 · 2 评论 -
UVA185map的使用
这题主要是题意不好懂,读了好久并没有读懂,后来看的题解,主要是判断这个等式按照罗马的方式时候成立,以及用数字代替等式中的字母后,时候有这样的一组或者多组成立,搜索就可以了。#include #include #include #include #include #include #include#include#include#include#include#incl原创 2015-10-12 21:31:36 · 388 阅读 · 0 评论 -
UVA592字符串推断题加暴力假设搜索
这题稍微有些复杂,当时想了很久没敢下手敲,主要还是代码能力不够,有了基本的思想不敢敲,而这道题实际上就是暴力搜索,因为只有五个人加上天气一共六个,直接假设就行了。这里用一个birth数组存储对话过程中曾经出现的人物。然后结果肯定是通过出现过的人物然后假设就行了。同时注意如果搜索的所有情况均不可行,说明对话有错误,即是第一种情况。此外有一种情况成立并不能说明什么,只有在所有情况下都成原创 2015-09-23 20:06:21 · 446 阅读 · 0 评论 -
UVA10085宽搜之八宫格走最远
刚开始以为直接宽搜会超时,并不会,直接宽搜,打印路径的话,开个数组记录子节点的父节点,再开一个数组记录父节点到子节点的方向,然后递归就行了。#include#include#include#include#include#include#include#include#includeusing namespace std;const int maxn=1e6;int原创 2016-03-02 21:24:03 · 430 阅读 · 0 评论 -
UVA1013201串配对
这题没什么说的,排序之后,暴力就行了。#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;const int maxn=500;const double eps=1e-5;string s[maxn];原创 2016-03-05 22:03:37 · 376 阅读 · 0 评论 -
UVA270sscanf的使用
这题数据比较小,所以直接当做一个数学题就行了,主要就是输入的问题,因为输入的问题RE了好几遍,最后看到别人用的sscanf,改了就过了。#include#include#include#include#include#include#include#include#include#include#include#define LL long longusing nam原创 2016-03-06 14:26:09 · 352 阅读 · 0 评论 -
UVA10706数字连排,求第i个位置的数字,二分
一个数组记录,是s1s2....sk的数字个数,然后二分,转化为字符串,即可求出第i个位置的数字,具体的看代码:#include#include#include#include#include#include#include#include#include#include#include#include#define LL long longusing namespa原创 2016-03-11 11:50:22 · 373 阅读 · 0 评论 -
uva10185set的自动排序和自动去重以及遍历和string的的辅助问题
set的排序和去重以及遍历看下面程序,string是一个类所以不能把一个char型字符赋值给string,但是char型数组可以,另外在不同的编译器上对于string以什么结尾的说法不一,最好不要用string的有效字符的后面一位来做一些事情。#include#include#include#include#include#include#include#includeus原创 2015-07-20 16:43:26 · 588 阅读 · 0 评论 -
uva537字符串中小数转化为实际小数
这题看了别人写的认为没有我写的严谨,至于小数转化,可以使用俩个循环进行转化,也可以用一个循环加标记#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;char s[1005];double原创 2015-07-20 11:37:09 · 572 阅读 · 0 评论 -
UVA10361转化思想使代码更加简洁
自己写的代码不够简洁,使用转化思想把以及\n转化为\0将会使代码更加简单,把重点放在输出上,当输入改变对于输出没有影响时可以任意改变输入,甚至可以一边输入一边改变,下面给出自己的代码,和转化思想代码:#include#include#include#include#include#include#include#include#include#include#inclu翻译 2015-07-20 10:09:17 · 375 阅读 · 0 评论 -
cf554A使用set和string解决字符串重复问题
这道题当时自己A的,比较麻烦,而且想了好久,还用了unique()函数去重,比较麻烦,而且WA了一发自己的代码:#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#incl原创 2015-07-02 20:59:42 · 686 阅读 · 0 评论 -
CF554B水题一发,求最大字符串相等的行
#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define LL long longint m原创 2015-07-02 21:15:49 · 594 阅读 · 0 评论 -
HNOJ13303字符串%3题
#include #include #include #include #include #include #include #include #include #include #include using namespace std;typedef long long LL;const LL INF = 0x4ffffff;const double EXP =翻译 2015-07-25 18:53:36 · 500 阅读 · 0 评论 -
HDU5312string类的字符串赋值函数和查找函数
当时撸的时候第一发没看清题就撸了一发,后台数据太水给过了,后来看了看发现读错题了,又撸一一发string交上去了#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define LL l原创 2015-07-27 08:51:27 · 473 阅读 · 0 评论 -
UVA120istringstream和deque的用法
这题自己敲的代码有些繁琐了,当然很多都是可以简化的,有些反复使用的东西完全可以写成函数的,当然即使写成函数也比较麻烦,其实只要记得每次看最前面的位置是不是当前最大值,不是的话先把最大值翻到最前面然后再翻到这个位置,当时不知道想的什么,写的这么麻烦,当然最简便的方法是使用istringstream和deque。分别贴上代码:前面是别人简化些的代码,后面的是自己写的脑抽的代码,最后面是最简翻译 2015-07-28 19:36:02 · 329 阅读 · 0 评论 -
UVA10194getline()的用法注意
这题有个很大的坑点:it must be done case insenstive.这句话的意识在这里是部分大小写,交了俩发WA,感觉自己没什么错的,看了下别人的,发现最后面的排序部分大小写,真的坑。另外写代码的时候发现,getline(cin,string)一直崩溃,不知道为什么,然后就把string改成了char字符数组,用gets输入,一直以为是getline()有什么问题,后来看到原创 2015-07-29 16:24:53 · 452 阅读 · 0 评论 -
uva123multimap的稳定排序和set的查找
这题刚开始自己撸了一发代码及其繁琐的代码,虽然AC了,但是感觉太烂了,百度了一下,发下自己截取单词的部分写残了,写复杂了,另外起初WA了一发,是因为不知道string自带的排序是不稳定排序。另外这题最简单的做法是用set加上multimap,multimap自动在插入的时候进行排序,而且是稳定排序,另外set自带的查找函数也省去了写查找了。自己的代码:注释部分是自己截取字符串的原创 2015-07-29 11:21:08 · 531 阅读 · 0 评论 -
UVA494判断一个字符串中单词的个数
这题刚开始被省略号迷惑了,刚开始写的if(s[i]==' '&&s[i+1]!='.')以及if(s[i]==' '&&isalpha(s[i+1]))都WA掉了,却忘记了最基本的判断方法#include#include#include#include#include#include#include#include#include#include翻译 2015-07-18 11:10:07 · 519 阅读 · 0 评论 -
uva755
最后写的判断相等的函数记得所有数据相等的情况,所以记得让i=slen,多判断一位#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define LL原创 2015-07-29 18:19:58 · 421 阅读 · 0 评论 -
UVA10785
这题题意略为坑,在满足上述条件的情况下输出最小字典序。#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define LL long long#de原创 2015-07-29 19:29:52 · 350 阅读 · 0 评论 -
UVA414尽量不要超出字符数组结束字符判断后面的东西
这题除了题意难理解之外,就是一个水题,但是自己撸的时候超出了字符数组进行判别,第二组数据可以计算出每行有16个空,然而实际上并没有空,贴上自己的错误代码,和之后改正的正确代码:#include#include#include#include#include#include#include#include#include#include#include#include翻译 2015-07-18 15:55:04 · 455 阅读 · 0 评论 -
UVA490注意字符串后面内容,不要想当然
起初没有加后面for循环中的if语句,而且没有上面的双重for循环一直WA,注意些就行,字符串太神奇了,一不小心就错了。#include#include#include#include#include#includeusing namespace std;int main(){ char s[105][105]; for(int i=0;i<105;i++)翻译 2015-07-19 00:49:54 · 949 阅读 · 0 评论 -
uva445string与字符串数组和单个字符逐个输入
这题刚开始用string写的,貌似string不能输入回车,或者说string字符串里不能包含回车一样,用string时会少输出yi翻译 2015-07-19 14:59:41 · 564 阅读 · 0 评论 -
UVA489查找到的字符可以变成不可能会查找到的
这题注意已经猜测成功的字母,再次猜测是按照错的处理,另外对于同一个字母猜错俩次是按照俩次算的,被提议误导了,加了一个flag2数组,然而并不需要,另外这题为了判断已经猜对的题目再次猜是错的,可以把猜对的字母变成字母外的可打印字符,例如*,这样还可以去掉flag数组。#include#include#include#include#include#includeusing nam翻译 2015-07-19 16:46:45 · 463 阅读 · 0 评论 -
UVA401map和string的查找返回值
这题脑子笨,想了好久没想到怎么建立一个相互映射,最后用的map,其实可以建立俩个字符数组,形成相互映射,来判断;另外map查找查找不到返回.end();string查找不到返回string::npos;看下面代码:注释部分为map写法#include#include#include#include#include#include#include#include#原创 2015-07-19 20:16:28 · 558 阅读 · 0 评论 -
UVA10010使用数组和一个for循环控制前进路径方向不变
注释部分为自己写的,想不到如何控制前进方向不变,只记得以前学dfs时每次方向都要改变,其实想控制方向不变加个for循环就行了#include#include#include#include#include#include#include#include#define LL long longusing namespace std;char s[60][60];string翻译 2015-07-19 23:48:09 · 479 阅读 · 0 评论 -
UVA409strstr()函数
这题可以用strstr()函数做也可以不用,写贴上不用的,包含文件:string.h函数名: strstr函数原型:extern char *strstr(char *str1, const char *str2);语法:* strstr(str1,str2)str1: 被查找目标 string expression to search.str2原创 2015-07-20 13:48:17 · 498 阅读 · 0 评论 -
UVA10700求只有加法和减法的表达式的最大值和最小值
这题,不难,想了一会,1A,代码:#include#include#include#include#include#include#include#include#include#include#include#include#define LL long longusing namespace std;const int maxn=1e7+10;const do原创 2016-03-11 19:11:04 · 453 阅读 · 0 评论