删除字符串中的“b”和“ac”,需要满足如下的条件:
1. 字符串只能遍历一次
2. 不能够使用额外的空间
例如:
1. acbac ==> ""
2. aaac ==> aa
3. ababac ==> aa
4. bbbbd ==> d
进一步思考:如何处理aaccac呢,需要做哪些改变呢?
分析
首先要明白从字符串中删除某些字符该如...
分类:
其他好文 时间:
2014-09-06 11:01:03
阅读次数:
166
題目:打印Pascal三角到第一个到达10^60的行。
分析:字符串、大整數、模擬。f(i,j)= f(i-1,j-1)+ f(i-1,j) {組合數公式}。
說明:注意不小于10^60的數字有61位(⊙_⊙)。
#include
#include
#include
using namespace std;
int P[220][220][70] = {0};
int main(...
分类:
其他好文 时间:
2014-09-06 10:59:33
阅读次数:
155
题目:有很多不同名称的树,统计每种树出现的概率。
分析:字符串,字典树(trie)。直接利用字典树计数,然后排序输出即可。
说明:POJ2418没有测试组数,TLE几次才发现╮(╯▽╰)╭。
#include
#include
#include
#include
#include
using namespace std;
char words[32];
/* Trie de...
分类:
其他好文 时间:
2014-08-28 18:13:35
阅读次数:
491
C++支持两种字符串,一种是从C继承过来的C-字符串;另一种是string。下面对它们进行简要的分析。【C-字符串】1、 【简介】C-串是以一个全0位(整数0)字节作为结束符的字符序列。该全0字节既是8位的整数0,也是ASCII码的0。(1)【空间长度】字符串长度加1,因为它末尾有一个0作为结束符(...
分类:
编程语言 时间:
2014-08-14 10:42:58
阅读次数:
203
sscanf和sprintf是scanf和printf家族用法sscanf和sprintf是scanf和printf家族的一对成员,用于处理和分析字符串非常强大得两个函数头文件 stdio.h原型int sscanf(const char *buffer,const char *format,......
分类:
其他好文 时间:
2014-07-16 22:59:38
阅读次数:
200
题目:给你一个目标串,和一些模式串,问每个模式串是否在目标串中出现。
分析:字符串,AC自动机。一开始用KMP算法,TLE了才发现会超时,改用AC自动机;
直接利用AC自动机存储,查询即可,然后按顺序输出;
如果模式串中有重复的,直接利用并查集合并即可,朱旭判断父节点。
说明:╮(╯▽╰)╭计算复杂度时,数据组数被忽略了;注意初始化。
#i...
分类:
其他好文 时间:
2014-07-06 10:46:17
阅读次数:
224
题目:给你一些01串,判断是不是某些串是其它串的前缀。
分析:字符串,字典树。
首先,将字符串按长度排序,这样前缀一定在前面;
然后,再插入字典树的过程中,判断是否覆盖即可。
说明:注意数组的大小。
#include
#include
#include
#include
using namespace std;
char wor...
分类:
其他好文 时间:
2014-06-15 20:09:54
阅读次数:
190
题目:再一句话里面有P,I,U中的2个已知量,求第三个未知量。(P=I*U)
分析:字符串。利用'='定位已知量,然后将'='后面的的数字和单位分别读入处理。
说明:注意单位有m(10^-3),k(10^3),M(10^6)的前缀,以及小数点的处理。
#include
#include
#include
#include
using namespace std;
char Sat...
分类:
其他好文 时间:
2014-06-15 17:48:02
阅读次数:
199
题目:给你一些单词和一个字母矩阵,问这个单词最早出现在哪里(单词可以向8个直线方向书写)。
分析:字符串。枚举矩阵中每个字母的8个方向,生成最长字符,然后在里面找单词即可。
说明:处理前,将大写字母先转化成小写字母。
#include
#include
#include
#include
using namespace std;
char text[52][52];
char w...
分类:
其他好文 时间:
2014-06-15 09:33:33
阅读次数:
164