
S3: OJ练习
涛歌依旧
毕业后就职于华为和腾讯
展开
-
字符串的排序
提交,成功了,无非就是个排序,用最简单的冒泡吧! 程序如下:#includeusing namespace std;void bubbleSort(char str[]){ int len = strlen(str); int i, j, flag = 1; char tmp; for(i = 0; flag && i < len - 1; i++) { flag =原创 2013-01-17 14:48:48 · 8371 阅读 · 1 评论 -
数组中大于等于平均数的元素的个数
这个题目出得相当恶心,也很傻逼,本人程序如下:#includeusing namespace std;int GetByondAvgNumber(int iArray[], int iLen){ int sum = 0; int number = 0; int i; for(i = 0; i < iLen; i++) { sum += iArray[i]; }原创 2013-01-17 14:18:00 · 11778 阅读 · 3 评论 -
大写首字母
提交一次,就成功了,最好考虑多个空格的情况, 程序如下:#include using namespace std;int main(){ char str[100]; int i, flag; // Do not use "cin >> str" here. while(cin.getline(str, 100)) { flag = 0; for(i = 0; '原创 2013-01-17 14:02:58 · 7859 阅读 · 1 评论 -
找出出现次数最多的数字(需要考虑顺序)
这是一个典型的计数排序,此处不需要排序,仅仅计数就可以了,该程序有一定难度,尤其是要考虑顺序时,程序提交一次,就通过了,好开心呀! 另外,计数过程的确很精妙,不需要排序,时间复杂度仅为O(n).#include using namespace std;int main(){ char str[257]; int times[10]; int maxTimesNumber, m原创 2013-01-17 13:21:12 · 8162 阅读 · 4 评论 -
字符串加密
提交后,成功,程序如下:#include using namespace std;int encodeChar(char c){ if( islower(c)) return c - 96; return c - 38;}char decodeInt(int n){ if(1 <= n && n <= 26) return n + 96; return原创 2013-01-17 12:09:32 · 7691 阅读 · 1 评论 -
一个简单的计算器
先写了一个程序,没有考虑到12+3这样的情况, 所以错了,有bug的程序如下:#include using namespace std;int operation(int x, char c, int y){ if('+' == c) return x + y; if('-' == c) return x - y; if('*' == c) return x原创 2013-01-17 10:30:48 · 7724 阅读 · 1 评论 -
字符串按规律加密
题目没有说串的大小,我还在担心呢,但提交后,正确了:#include using namespace std;char characterPlusOne(char c){ if('z' == c) return 'a'; return c + 1;}char characterMinusOne(char c){ if('a' == c) return 'z'原创 2013-01-11 23:20:49 · 7878 阅读 · 0 评论 -
字符串---> 整数--->二进制
提交了,成功了:#include using namespace std;int thirdBinaryDigitFromLast(int n){ int times = 0; if(n <= 3) return 0; while(n) { times++; if(3 == times) { if(0 == n % 2) return 0;原创 2013-01-11 22:40:01 · 7444 阅读 · 2 评论 -
跟7相关的数的个数
程序提交后成功了:#include using namespace std;bool isRelevantTo7(int n){ if(0 == n % 7) return true; while(n) { if(7 == n % 10) return true; n /= 10; } return false;}int main(){ in原创 2013-01-11 15:41:03 · 8144 阅读 · 0 评论 -
字符串逆置(在OJ上一次提交成功)
总算慢慢熟悉这个OJ了,程序交了一次,就OK了,如下:#includeusing namespace std;void reverseString(char str[]){ int length = strlen(str); int i, tmp; for(i = 0; i < length/2; i++) { tmp = str[i]; str[i原创 2013-01-09 22:57:38 · 7568 阅读 · 1 评论 -
回文串判断(先错后对,OJ系统好严格啊)
第一次用这个OJ系统,不太熟悉,写了一个程序,在本机上可以正确运行,但提交,错了,原来OJ这么严格, 程序如下:#include using namespace std;bool isSymmetric(char str[]){ int length = strlen(str); int i; for(i = 0; i < length/2; i++) if(原创 2013-01-09 22:25:55 · 8125 阅读 · 0 评论 -
最简单的OJ题目(求两个整数之和)
C代码:#include int main(){ int a, b; while(EOF != scanf("%d %d", &a, &b)) { printf("%d\n", a + b); } return 0;} C++代码:#include using namespace std;int main(){ int a, b; wh原创 2013-01-09 21:11:17 · 8537 阅读 · 1 评论 -
实现单词替换(非word中的字符串替换,有点难度)
说实话,这个题目挺难的,要综合考虑多种情况,word中的替换功能仅仅是实现字符串的替换,而这里是单词的置换. 提交后,一次成功,相当开心啊!, 程序如下:#include#define FLAG1 1#define FLAG2 2#define FLAG3 3#define FLAG4 4using namespace std;bool isSeperator(char原创 2013-01-17 19:26:32 · 9156 阅读 · 1 评论