- 博客(89)
- 资源 (4)
- 收藏
- 关注
原创 华为机试——学生关灯问题
描述:一条长廊里依次装有n(1 ≤ n ≤ 65535)盏电灯,从头到尾编号1、2、3、…n-1、n。每盏电灯由一个拉线开关控制。开始,电灯全部关着。有n个学生从长廊穿过。第一个学生把号码凡是1的倍数的电灯的开关拉一下;接着第二个学生把号码凡是2的倍数的电灯的开关拉一下;接着第三个学生把号码凡是3的倍数的电灯的开关拉一下;如此继续下去,最后第n个学生把号码凡是n的倍数的电灯的开关拉一下。n个学生按此
2016-01-12 16:45:14 778
原创 华为机试——去掉最大值、最小值之后剩下的个数
去掉最大值、最小值之后剩下的个数输入一串数,以’,’分隔,输出所有数中去掉最大值、最小值之后剩下的个数。(其中最大值与最小值可能有多个)Sample input:3,3,5,3,6,9,7,9Sample output:3#include<iostream>#include<cstdio>using namespace std;int main(){ int n=0,count=0;
2016-01-12 16:42:55 484
原创 华为机试——从5个人中选取2个人作为礼仪
从5个人中选取2个人作为礼仪要从5个人中选取2个作为礼仪,其中每个人的身高范围为160-190,要求2个人的身高差最小(如果差值相同的话,选取最高的两个人),以升序输出两个人的身高。Sample input:161 189 167 172 188Sample output:188 189#include<iostream>#include<cmath>using namespace std;i
2016-01-12 16:40:29 875
原创 华为机试——回文数判断
问题:回文数判断判断回文数,是返回YES#include<iostream>#include<string>using namespace std;int main(){ //int flag=1; int i; string s; getline(cin,s); int len=s.size(); for( i=0;i<len/2;i++)
2016-01-12 16:38:43 566
原创 华为机试——数字处理
将第一行中含有第二行中“23”的数输出并排序输入第一行数字:123 423 5645 875 186523在输入第二行中:23将将一行中含有第二行中“23”的数字输出并排序结果即:123 423 186523方法一:#include<iostream>#include<algorithm>#define N 100using namespace std;int main(){ in
2016-01-12 16:36:29 479
原创 华为机试——翻译电话号码
includeincludeusing namespace std;int main() { char *a[11]={“Zero”,”One”,”Two”,”Three”,”Four”,”Five”,”Six”,”Seven”,”Eight”,”Nine”,”Double”}; string s; string substr1; getline(cin,s
2016-01-12 16:34:08 471
原创 华为机试——整数倒序输出,剔除重复数据
将整数倒序输出,剔除重复数据输入一个整数,如12336544或1750,然后从最后一位开始倒过来输出,最后如果是0,则不输出,输出的数字是不带重复数字的,所以上面的输出是456321和571.如果输入是-175,输出-571#include<iostream>#include<cmath>using namespace std;int main(){ int num,n[50],a[
2016-01-12 16:32:22 531
转载 华为机试——括号匹配
#include<iostream>#include<string>using namespace std;int main(){ string str; getline(cin,str); int len=str.size(); //统计左右括号数 int cntL,cntR; cntL=cntR=0; for(int i=0;i<len
2016-01-12 16:30:21 710
原创 华为机试——字符串压缩
字符串压缩通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。 压缩规则: 1、仅压缩连续重复出现的字符。比如字符串”abcbc”由于无连续重复字符,压缩后的字符串还是”abcbc”。 2、压缩字段的格式为”字符重复的次数+字符”。例如:字符串”xxxyyyyyyz”压缩后就成为”3x6yz”。
2016-01-12 16:28:16 1129
原创 华为机试——将一句英文中的单词排序
#include<iostream>#include<cstring>#include<cctype>const int N=100;using namespace std;int main(){ char s[N]; char str[N][N]; int i=0,j=0,t=0; cin.get(s,N); int len=strlen(s);
2016-01-12 16:22:36 1009
原创 华为机试——查找子字符串个数
#include<iostream>//#include<string>#include<cstring>using namespace std;int func(char *str,char *substr);int main(){ //string str,substr; char str[100],substr[10]; cout<<"输入字符串:";
2016-01-12 16:21:10 421
原创 华为机试——最大递增数
求最大递增数如输入:1231123451输出12345#include<iostream>#include<string>#include<cassert>using namespace std;int main(){ string s; getline(cin,s); //int length=1,maxlength=0; //int result=s[0
2016-01-12 16:18:51 488
原创 华为机试——字母大小写判断
问题:字母大小写判断(2015华为上机)描述:判断一个字符串是否是首字母大写且非首字母小写输入:一个任意字符串,长度不超过128字符输出:如果输入字符串首字符为大写字母且其他字符非大写字符,返回true,其他情况(空字符串、首字符非字母、首字母为小写、首字母大写但其他字符非字符非字母等)均返回false样例输入:Hello word样例输出:true#include<iostream>#inclu
2016-01-12 16:16:03 990
原创 华为机试——字符串中括号是否匹配
判断一个字符串中()是否匹配#include<iostream>#include<string>#include<cstring>bool flag=1;using namespace std;bool fun(string str,int len);void main(){ string str; cin>>str; int len=str.size();
2016-01-12 16:14:20 674
原创 华为机试——数循环移位
#include<iostream>//cosnt int N=100;using namespace std;void fun(int *p,int n,int k);void main(){ int a[5]={1,2,3,4,5}; int i; fun(a,5,2); for(i=0;i<5;i++) cout<<a[i]<<" ";
2016-01-12 16:13:02 401
原创 华为机试——字符串格式转换
转换字符串格式为原来字符串里的字符+该字符连续出现的个数,例如字符串1233422222,转化为1121324125#include<iostream>#include<string>using namespace std;int main(){ cout<<"Enter the numbers "<<endl; string str; char reschar[50
2016-01-12 16:11:57 850
原创 华为机试——字符串中出现相同最长字符串
输入一行字符串,找出其中出现的相同且长度最长的字符串,输出它及其首字符的位置例如“yyabcdabjcabceg”,输出结果应该为abc和3,原理:查找的最长子串长度从length()-1开始,i为子串的长度,j为子串的起始位置,通过正序和逆序查找比较看子串是否重复出现在字符串中不同位置来找到最长的重复子串#include<iostream>#include<string>using names
2016-01-12 16:09:39 603
原创 华为机试——字符串中出现次数最多的子串
问题:求一个字符串中连续出现次数最多的子串例如字符串abcbcbcabc,这个连续出现次数最多的子串是bc,连续出现3次,字符串abcccabc,连续出现次数最多的子串是c,出现3次#include<iostream>#include<string>#include<vector>using namespace std;pair<int,string> fun(const string &st
2016-01-12 16:06:38 1139
原创 华为机试——字符串中子字符串替换
问题:实现字符串中子字符串的替换描述:编写一个字符串替换函数,如函数名为 StrReplace(char* strSrc, char* strFind, char* strReplace),strSrc为原字符串,strFind是待替换的字符串,strReplace为替换字符串。举个直观的例子吧,:“ABCDEFGHIJKLMNOPQRSTUVWXYZ”这个字符串,把其中的“RST”替换为“ggg”
2016-01-12 16:03:57 747
原创 华为机试——字符串拆分
按要求分解字符串,输入两个数M,N;M代表输入的M串字符串,N代表输出的每串字符串的位数,不够补0。 例如:输入2,8, “abc” ,“123456789”,则输出为“abc00000”,“12345678“,”90000000”#include<iostream>#include<stdio.h>#include<string>#include<vector>using namespa
2016-01-12 16:01:46 812
原创 华为机试——去除重复子串并排序
去除重复字符并排序 运行时间限制:无限制 内容限制: 无限制 输入: 字符串 输出: 去除重复字符并排序的字符串 样例输入: aabcdefff 样例输出: abcdef通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。
2016-01-11 17:00:53 646
原创 华为机试——连续整数
编程实现如下功能: 1.输入100个以内的整数,以逗号离开; 2.将这些整数从大到小输出,中间以逗号隔开; 3.输出的数据中若含有三个以上的连续整数,则只输出连续列的最大值和最小值; 4.不考虑输入数字重复的情况。 例如:输入:1,2,3,4,7,8,9 输出:9,7,4,1#include<iostream>#include<stdio.h>#include<algorithm>
2016-01-11 16:57:21 462
原创 华为机试——字符串过滤
通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符, 将非首次出现的字符过滤掉。比如字符串“abacacde”过滤结果为“abcde”。 要求实现函数:void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr); 【输入】 pInputStr:
2016-01-11 16:55:25 563
原创 华为机试——数字奇偶排序
将输入的一串10个整数进行从小到大排序,但是要求偶数放在偶数位置上,奇数放在奇数位置上。缺失的位置由0补齐,输入中不会有0.样例输入:53 8 21 43 3 7 51 62 13 68样例输出:3 8 7 62 13 68 21 0 43 51 0 53#include<iostream>#include<stdio.h>#include<algorithm>using namespace
2016-01-11 16:53:42 513
原创 最长回文子串
#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<ctype.h>using namespace std;const int MAXN=5000+10;char buf[MAXN],s[MAXN];/*int main(){ int n,m=0,max=0; int
2016-01-11 16:51:14 267
原创 华为机试——删除字符串中的数字
输入一个字符串,删除其中所有的数字,所有大写字母改成小写,其他不变,并输出#include<iostream>#include<string>using namespace std;int main(){ string s; cin>>s; for(int i=0;i<s.size();i++) { if(s[i]>='1' && s[i]<='
2016-01-11 16:49:25 288
原创 华为机试——最高出现频率字符
输入一个字符串,统计其出现频率最高的字符,并输出。若存在两个字符出现频率相同,则输出字典序较小的那一个#include<iostream>#include<string>using namespace std;char f[256];int main(){ int biggest=-1; string s; cin>>s; memset(f,0,sizeof(
2016-01-11 16:47:30 664
原创 华为机试——数组排序
题目描述:输入10个数字,按各个位上的和从小到大排序,如果相同,则按数字从小到大排序。输入描述10个正整数,保证都在int范围内,用空格隔开输出描述10个数字,其从大到小的值,用空格隔开,最后一个数字后不加空格输入样例11 3 2 4 5 9 8 7 10 6输出样例10 2 11 3 4 5 6 7 8 9#include<iostream>#include<string>#include<a
2016-01-11 16:44:06 601
原创 贪心算法(一)
题目描述:题目描述你有一个容量为100的箩筐,给你30个物品,每个物品的体积已知问:最多能装多少个物品进箩筐输入描述一行30个正整数,用空格隔开,表示每个物品的体积输出描述一个数字,为最多能装下的物品数#include<iostream>#include<algorithm>using namespace std;int object[30];int main(){ for(int
2016-01-11 16:40:41 438
原创 华为机试——约瑟夫环问题(总结)
约瑟夫环问题已知n个人(以编号1,2,3….分别表示)围坐在一张圆桌周围,从编号为K的人开始报数,数到m个那个人出列;他的下一个人又从K开始报数,数到m的那个人又出列,以此规律重复下去,直到圆桌周围的人全部出列。方法一:用链表实现typedef struct LNode{ int data; struct LNode* link;}LNode;//循环链表实现void jos
2016-01-10 14:14:23 930
原创 华为机试——自动售货机找零
有个自动售货机会自己找零,能塞进去以及突出来的钱的面额为1、5、10、20、50、100,输入用户塞进去的面额和商品价格,要求输出找零信息,也就是说1、5、10、20、50、100个多少个例子:输入10089输出1 0 1 0 0 0#include<iostream>using namespace std;int main(){ int a[6]={1,5,10,20,50,100};
2016-01-10 14:09:53 2237
原创 华为机试——句子逆序
题目:句子逆序将一个英文句子一单词为单位逆序排行。例如”I am a boy”,逆序排放后为“boy a am I”。所有单词之间用一个空格隔开,语句中除了英文单词外,不再包含其他字符。方法一:#include<iostream>#include<cstring>#include<cstdio>using namespace std;void RS(char* begin,char *end
2016-01-10 14:08:13 840
原创 华为机试——字符个数统计
题目:字符个数统计计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127)。不再范围内的不做统计#include<iostream>#include<string>#include<algorithm>using namespace std;bool IsNotACSII(char p){ if(p>=0 && p<=127) return false
2016-01-10 14:05:37 747
原创 华为机试——合并表记录
题目:合并表记录数据表记录包含表索引和数值,请对索引相同的记录进行合并,合并后表记录为相同索引表的数值求和。#include<iostream>#include<algorithm>using namespace std;struct Record{ int Index; int Value;};bool cmp(struct Record a,struct Record b
2016-01-10 14:03:32 577
原创 华为机试——质数因子
功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5)#include<iostream>using namespace std;void getResult(long input){ for(int i=2;i<=input;i++) { while((input%i == 0)&& input!=0)
2016-01-10 14:01:44 647
原创 华为机试——进制转换
写一个程序,接收一个十六进制的数值字符串,输出该数值的十进制字符串。#include<iostream>#include<string>using namespace std;int main(){ string str; cin>>str; long result=0; int len=str.size(); long factor=1; fo
2016-01-10 14:00:40 1366
原创 华为机试——字符统计
输入一个字符串,对字符串中的各个英文字符,数字,空格进行统计(可反复调用),按照统计个数的多少输出统计结果,如果统计的个数相同,则按照ACSII码由小到大排序输出。调用者会保证:输入的字符串以’\0’结尾#include<iostream>#include<algorithm>using namespace std;struct Count{ int c; int count;
2016-01-10 13:58:30 669
原创 华为机试——自守数
题目:自守数自守数是指一个数的平方的尾数等于该书自身的自然数。例如25^2=625,76^2=5776,9376^2=87909376。求出n以内的自守数的个数#include<iostream>using namespace std;int CalAutomorphicNumbers(int n){ int count=0; int i; for(i=1;i<=n;i+
2016-01-10 13:56:22 595
原创 华为机试——连续最长数字串
在字符串中找出连续最长的数字串样例输出输出123058789,函数返回值9输出54761,函数返回值5#include<iostream>#include<string.h>#include<cstdio>using namespace std;int continuemax(char a[],char* &s){ int max=0,number=0,index; int
2016-01-10 13:54:15 531
原创 华为机试——棋盘格子数
请编写一个函数,计算n*m的棋盘格子(n为横向的格子数,m为竖向的格子数)沿着各自边缘线从左上角走到右下角,总共有多少种走法,要求不能走回头路,即:只能往右和向下走,不能往左和往上走。#include<iostream>using namespace std;int fun(int n,int m){ if(m<=0||n<=0) return 0; else
2016-01-10 13:48:45 1057
程序员健康指南
2015-12-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人