Exercise
文章平均质量分 56
Bryan要加油
这个作者很懒,什么都没留下…
展开
-
奇数阶幻方
1 奇数阶幻方构造法 (1) 将1放在第一行中间一列; (2) 从2开始直到n×n止各数依次按下列规则存放:按 45°方向行走,向右上,即每一个数存放的行比前一个数的行数减1,列数加1 (3) 如果行列范围超出矩阵范围,则回绕。例如1在第1行,则2应放在最下一行,列数同样加1; (4) 如果按上面规则确定的位置上已有数,或上一个数是第1行第n列时,则把下一个数放原创 2014-05-17 16:20:11 · 1089 阅读 · 0 评论 -
逆序输出链表
输入一个链表的头结点,从尾到头反过来输出每个结点的值。链表结点定义如下:struct ListNode{ int m_nKey; ListNode* m_pNext;};原创 2014-06-09 16:29:23 · 963 阅读 · 0 评论 -
从字符串中找到第一个只出现一次的字符
#include using namespace std;void FirstNotRepeat(char *s ){ if (s == NULL) { return; } int hashTable[256] = {0}; bool flag = false; char * cur = s; while(*cur != '\0') { hashTable[原创 2014-06-09 14:50:43 · 1023 阅读 · 0 评论 -
对称子字符串的最大长度
输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。提示:可能很多人都写过判断一个字符串是不是对称的函数,这个题目可以看成是该函数的加强版。找出一个字符串中的最长奇数回文。在控制台输入输出。#include #include using namespace std;boo原创 2014-06-09 15:26:28 · 741 阅读 · 0 评论 -
将一个字符串中的空格全部替换为“%20”
string ReplaceSapces(const string &s){ string retStr; if(s.length() == 0) return retStr; int spaceCount = 0; //统计输入字符串中空格的个数 for(string::const_iterator it = s.begin();it!= s.end();it++) if((原创 2014-05-29 09:38:44 · 1748 阅读 · 0 评论 -
利用字符出现的次数,编写一个方法,实现基本的字符串压缩功能。
利用字符出现的次数,编写一个方法,实现基本的字符串压缩功能。string StringCompress(const string &s){ string retStr; if(s.length() == 0) return retStr; char tmpChar = s.at(0); int charCount = 0; for(string::const_ite原创 2014-05-29 10:18:54 · 3085 阅读 · 0 评论 -
最长公共子序列
动态规划,众所周知,第一步就是找子问题,也就是把一个大的问题分解成子问题。这里我们设两个字符串A、B,A = "a0, a1, a2, ..., am-1",B = "b0, b1, b2, ..., bn-1"。(1)如果am-1 == bn-1,则当前最长公共子序列为"a0, a1, ..., am-2"与"b0, b1, ..., bn-2"的最长公共子序列与am-1的和。长度为"a原创 2014-06-15 18:46:21 · 697 阅读 · 0 评论 -
Reverse Words in a String
Given an input string, reverse the string word by word.For example,Given s = "the sky is blue",return "blue is sky the".click to show clarification.Clarification:What constitutes原创 2014-06-15 22:19:55 · 600 阅读 · 0 评论 -
Minimum Depth of Binary Tree
Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.原创 2014-07-06 23:36:41 · 461 阅读 · 0 评论 -
压缩字符串中的空格
若输入" a b c "原创 2014-06-16 15:30:27 · 2210 阅读 · 0 评论 -
华为2012.09.03浙大机试题 去掉字符串中的重复字符,字符串中重复字符的压缩,根据输入计算字符串结果
1、通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。比如字符串“abacacde”过滤结果为“abcde”。 要求实现函数: void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr);原创 2014-06-19 10:24:46 · 945 阅读 · 0 评论 -
字符串的移动
字符串为*号和26个字母的任意组合,把 *号都移动到最左侧,把字母移到最右侧并保持相对顺序不变,要求时间和空间复杂度最小。原创 2014-06-19 11:16:20 · 919 阅读 · 0 评论 -
三色旗排序
题目描述现有n个红白蓝三种不同颜色的小球,乱序排列在一起,请通过两两交换任意两个球,使得从左至右,依次是一些红球、一些白球、一些蓝球。这个问题之所以叫荷兰国旗,是因为我们可以将红白蓝三色小球想象成条状物,有序排列后正好组成荷兰国旗。如下图所示:分析与解法初看此题,我们貌似除了暴力解决并无好的办法,但联想到我们所熟知的快速排序算法呢?我们知道,快速排序原创 2014-06-22 20:35:58 · 3395 阅读 · 0 评论 -
顺时针打印矩阵
#include using namespace std;void PrintNumber(int num){ cout<<num<<" ";}void PrintMatrixInCircle(int **numbers,int columns,int rows,int start){ int endY = columns - 1 - start; int endX = r原创 2014-09-22 23:48:48 · 591 阅读 · 0 评论 -
从文件中读入文本,文本内容为几个字符串,用逗号间隔,将其中同时含有字母和数字的字符串去除,留下仅仅只包含字母或数字的字符串,然后进行排序
从文件中读入文本,文本内容为几个字符串,用逗号间隔,将其中同时含有字母和数字的字符串去除,留下仅仅只包含字母或数字的字符串,然后进行排序,排序规则如下:(1) 数字的串按数字大小排序(2) 字母的串按ASCII码排序(3) 所有数字排在字母前最后将结果输出的文件中。例如:hello, He, 1b, 2b, 55, 9, 6b ----> 9 55 He h原创 2014-06-28 20:22:39 · 1400 阅读 · 0 评论 -
在控制台上输入一个字符串,将其中夹杂的字母去除,只剩数字,然后对对这些数字进行全排列,输出全排列结果
如123a4b6c7 ------> 1234567 全排列,注意去除重复的排列,如111--->输出只有 111原创 2014-06-28 19:54:29 · 1016 阅读 · 0 评论 -
从文件读取字符串,并求出该字符串包含的字符集中所有字符的全部组合
求给定字符集中所有字符的全部组合。首先从文件“data.txt”中读取字符集,并识别出字符集中的每一个字符。假设字符集的总字符数为n,利用这个n个字符组成长为n的字符串。其中每个字符均可重复使用,每个字符串中也不必包含全部字符。试求出所有长为n的字符串集合。最后将所求的的集合写入文件“result.txt”中。(30分)程序输入输出样例– data.txt中的内容为@#– resu原创 2014-05-18 21:27:01 · 1478 阅读 · 0 评论 -
keng
#include #include #include #include using namespace std;vector ExtractNumFromString(string& s){ int numStart; int numEnd; vector ret; for(int i = 0;i<s.length();i++) { if (i == 0 &&原创 2014-05-19 17:25:15 · 650 阅读 · 0 评论 -
在控制台上输入一个字符串,将其中夹杂的字母去除,只剩数字,然后对对这些数字进行全排列,输出全排列结果
在控制台上输入一个字符串,将其中夹杂的字母去除,只剩数字,然后对对这些数字进行全排列,输出全排列结果。如123a4b6c7 ------> 1234567 全排列,注意去除重复的排列,如111--->输出只有 111原创 2014-05-19 20:49:25 · 2270 阅读 · 0 评论 -
C++控制台,画圆,正方形,正三角形。。。没写完。。
#include using namespace std;void DrawSqure(int N){ for(int i = 0;i<N;i++) { for(int i = 0;i<N;i++) { cout<<"#"; } cout<<endl; }}void DrawCircl原创 2014-05-20 14:02:03 · 3002 阅读 · 0 评论 -
随机生成N个1至100的整数,N由用户给定,程序输出出现次数最多的整数及其出现次数。如果有多个并列最多,需要输出全部最多的整数。
随机生成N个1至100的整数,N由用户给定,程序输出出现次数最多的整数及其出现次数。如果有多个并列最多,需要输出全部最多的整数。原创 2014-05-21 00:04:54 · 5311 阅读 · 0 评论 -
上台阶or斐波那契数列
1. 如果一个人可以一次上一个台阶或者一次上两个台阶,求出如果有n个台阶,则这个人一共有多少种走法?a) 控制台输入台阶总数n;控制台输出一共多少种走法原创 2014-05-20 23:44:55 · 1017 阅读 · 0 评论 -
求两个数的最大公约数与最小公倍数
最大公约数,#include using namespace std;int RecGCD(int a,int b){ if(a < b) { int tmp = a; a = b; b = tmp; } if(b==0) return a; else return RecGCD(b,a%b);}int NonRecGCD(int原创 2014-06-04 13:32:39 · 563 阅读 · 0 评论 -
从文件读字符串,提取其中的数字,然后进行集合划分
首先从文件“data.txt”中读取数据。data文件中的数据由字母、数字等元素组成(以空格分隔)。请从这些数据中识别出所有的数字,并将其组成一个集合。如果这些数字的和为偶数,就将这个集合中的数字划分为两个子集合,使得每部分的和相等,试求出所有的划分。如果这些数字的和为奇数,则将这个集合中的数字划分为两个子集合,使得每部分的和相差1,试求出所有的划分。最后的结果输出到“result.txt”中。如原创 2014-05-22 23:53:47 · 1557 阅读 · 0 评论 -
单词翻转
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变,句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“I am a student.”,则输出“student. a am I”。原创 2014-06-06 09:24:49 · 557 阅读 · 0 评论 -
旋转字符串
给定一个字符串,要求把字符串前面的若干个字符移动到字符串的尾部,如把字符串“abcdef”前面的2个字符“ab” 移动到字符串的尾部,即变成“cdefab”。请写一个函数完成此功能,要求对长度为n的字符串操作的时间复杂度为 O(n),空间复杂度为 O(1)。https://github.com/julycoding/The-Art-Of-Programming-By-July/blob/mas原创 2014-06-06 09:12:47 · 430 阅读 · 0 评论 -
最长递增子序列(LIS)
题:求一个一维数组arr[i]中的最长递增子序列的长度,如在序列1,-1,2,-3,4,-5,6,-7中,最长递增子序列长度为4,可以是1,2,4,6,也可以是-1,2,4,6。像LCS一样,从后向前分析,很容易想到,第i个元素之前的最长递增子序列的长度要么是1(单独成一个序列),要么就是第i-1个元素之前的最长递增子序列加1,可以有状态方程:LIS[i] = max{1,LIS[转载 2014-06-26 19:51:23 · 473 阅读 · 0 评论 -
八皇后问题
1.引子 中国有一句古话,叫做“不撞南墙不回头",生动的说明了一个人的固执,有点贬义,但是在软件编程中,这种思路确是一种解决问题最简单的算法,它通过一种类似于蛮干的思路,一步一步地往前走,每走一步都更靠近目标结果一些,直到遇到障碍物,我们才考虑往回走。然后再继续尝试向前。通过这样的波浪式前进方法,最终达到目的地。当然整个过程需要很多往返,这样的前进方式,效率比较低下。2.适用范原创 2014-06-26 09:31:26 · 549 阅读 · 0 评论 -
最长公共子序列(LCS)
0、前言 程序员编程艺术系列重新开始创作了(前十章,请参考程序员编程艺术第一~十章集锦与总结)。回顾之前的前十章,有些代码是值得商榷的,因当时的代码只顾阐述算法的原理或思想,所以,很多的与代码规范相关的问题都未能做到完美。日后,会着力修缮之。 搜遍网上,讲解这个LCS问题的文章不计其数,但大多给读者一种并不友好的感觉,稍感晦涩,且代码也不够清晰。本文力图避免此些情况。力转载 2014-06-26 19:18:51 · 597 阅读 · 0 评论 -
判断一个数是否为素数&求1到某一个数之间的所有素数
判断一个数是否为素数原创 2014-06-25 23:47:51 · 1645 阅读 · 0 评论 -
找出一个字符串中的最长奇数回文。在控制台输入输出。
找出一个字符串中的最长奇数回文。在控制台输入输出。例如,字符串mabcbatqabccba中,最长回文为abcba,类似abccba不算.原创 2014-05-22 15:37:31 · 1303 阅读 · 0 评论 -
提取字符串,并对字符串按字典序排序
#include #include #include const int N = 1000;using namespace std;struct struct_str{ char* ch; int length;};int StrDeal(char* str,std::vector& strvector){ int strEnd = 0; int i = 0;原创 2014-05-15 17:07:40 · 2538 阅读 · 0 评论 -
扑克牌顺子
题目描述LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子…..LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面的原创 2016-02-27 11:16:09 · 396 阅读 · 0 评论