- 博客(12)
- 资源 (63)
- 收藏
- 关注
原创 GEEK编程练习— —有效括号问题
题目给定一个字符串只包含(,),{,},[和],判断输入是否合法。括号必须按照正确顺序排列,如()和()[]是合法的,而(]和([)]不合法。输入()[]输出True输入([)]输出False分析利用栈stack的特性。代码#include <iostream>#include <string>#include <stack>using namespace std;int main(){
2016-06-19 20:46:02 1962
原创 GEEK编程练习— —回文构词法
题目给定一组字符串,返回根据回文构词法,同属于一组的字符串,所有输入都是小写。 回文构词法是指打乱字母顺序从而得到的新的单词,比如”dormitory“打乱字母顺序可以变成”dirty room”,”tea”可以变成”eat”。其中的字母种类和数目一致,只是字母排列顺序不同,若按字母顺序排序后相等,则属于同一组。输入teabageatdog输出tea eat分析可以使用unordered_m
2016-06-11 15:38:58 3009
原创 GEEK编程练习— —计数问题
题目假定以下是一组有规律的整数序列 1,11,21,1211,111221,…… 起始是”一个1“,那么接下来的数就是11 11可以被计为”两个1“,接下来的数就是21 然后21被计为”一个2一个1“,接下来的数就是1211 1211被计为”一个1一个2两个1“接下来的数就是111221 给定一个正整数n,输出序列第n个元素。输入4输出1211分析题目不难,但是挺有趣的,直接模拟这个过程
2016-06-11 15:18:32 2087
原创 GEEK编程练习— —罗马数字问题
题目输入的是一个整数或罗马数字,若为整数,输出对应的罗马数字;若为罗马数字,输出对应的整数。数值范围从1到3999。输入1100输出MC输入MC输出1100分析因为输入只有两种情况,判断一下首个字符为整数还是罗马数字,分两种情况进行转换。代码#include <iostream>#include <string>#include <cctype>#include <cstdlib>using
2016-06-07 15:57:49 2554
原创 GEEK编程练习— —有效数字
题目判断输入的字符串是否是数字输入0 0.1 abc1 a2e10输出YESYESNONOYES分析可以直接使用标准库函数strtod()代码#include <iostream>#include <string>#include <cstdlib>using namespace std;int main(){ string str; cin >> str;
2016-06-07 14:50:46 1717
原创 GEEK编程练习— —通配符匹配
题目实现’?’和’*’组成的通配符的匹配功能。 1) ‘?’匹配任意单个字母。 2) ‘*’匹配任意字母序列,包括空序列。 3) 输入的字符串要整体覆盖,不能部分覆盖。输入aa aaa aaaaa aaaa *aa a*ab ?*aab c*a*baab *b输出Not MatchMatchNot MatchMatchMatchMatchNot MatchMatch
2016-06-06 17:49:50 1903
原创 GEEK编程练习— —正则表达式匹配
题目实现’.’和’*’组成的正则表达式的匹配功能。 1) ‘.’匹配任意单个字母。 2) ‘*’匹配之前的n元素,n大于等于0。 3) 输入的字符串要整体覆盖,不能部分覆盖。输入aa aaa aaaaa aaaa a*aa .*ab .*aab c*a*b输出Not MatchMatchNot MatchMatchMatchMatchMatch分析使用递归的方法,主要考
2016-06-05 22:51:22 2549
原创 GEEK编程练习— —字符串匹配
题目给定字符串P和T,要求从T中找出与P相同的所有子串,并返回子串位置。输入str strsstrstrl输出1 5 8分析这其实是字符串模式匹配的问题。简单科普一下,模式匹配又可分为单模式匹配和多模式匹配,单模式匹配,即只有一个模式串;多模式匹配,即有k个模式串。常见的单模式匹配的算法有BF算法、KMP算法、BM算法等等。常见的多模式匹配算法有Trie树,AC自动机,WM算法, 后缀树等等。这里给
2016-06-05 14:53:22 2611
原创 GEEK编程练习— —回文字符串
题目其实关于回文的题目很多,这里再给出一个简单的题目。我们把空字符串也当作回文字符串。输入A man, a plan, a canal: Panama输出YES输入race a car输出NO分析这个题目没有难度,只是要稍微注意下大小写,还有要忽略掉空格和标点符号。代码#include <iostream>#include <string>#include <cctype>#include <
2016-06-03 17:15:37 2954
原创 GEEK编程练习— —寻找单个数
题目1给定一组整数,其中除了一个整数只出现一次外,其他每个整数都是成双出现。找到这个只出现一次的整数。要求: 1、线性时间复杂度 2、不开辟额外内存空间输入0 0 1 3 2 4 1 4 2输出3分析1异或操作可以实现偶数次清零的功能。代码1#include <iostream>#include <vector>using namespace std;int main(){ vect
2016-06-02 21:08:11 2751
原创 GEEK编程练习— —发糖果问题
题目假设N个小孩站成一排,每个小孩被分配了一个整数号码。要按照如下的要求给孩子们发糖。 1、每个小孩至少有一颗糖果 2、号码大的孩子比相邻的孩子分到的糖果要多 求最少要发出几颗糖果输入0 1 3 1 4输出9分析可以前后循环两遍,第一遍从前往后,把相邻的两个小孩中,前面号码比后面号码大的多发糖;第二遍从后往前,同样把相邻孩子中,后面号码比前面号码大的多发糖;最后加和得到结果。代码#includ
2016-06-01 22:41:38 5861
颜色迁移算法
2015-05-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人