文章目录

  • HJ1 字符串最后一个单词的长度
  • HJ2 计算字符个数
  • HJ3 明明都随机数
  • HJ4 字符串分隔
  • HJ5 进制转换
  • HJ6 质数因子
  • HJ7 取近似值
  • HJ8 合并表记录
  • HJ9 提取不重复的整数
  • HJ10 字符个数统计
  • HJ11 数字颠倒
  • HJ12 字符串反转
  • HJ13 句子逆序
  • HJ14 字符串排序
  • HJ15 求int型数组在内存中储存时1的个数
  • HJ21 简单密码破解
  • HJ22 汽水瓶
  • HJ26 字符串排序
  • HJ34 图片整理
  • HJ35 蛇形矩阵
  • HJ37 统计每个月兔子的总数
  • HJ38 求小球落地5次后所经历的路程和第5次反弹的高度
  • HJ40 输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数

HJ1 字符串最后一个单词的长度

#include <iostream>
#include <string>int main(){std::string s1;getline(std::cin, s1);int lastWordLen = s1.length() - (s1.rfind(" ")+1);std::cout << lastWordLen;return 0;
}

HJ2 计算字符个数

#include <iostream>
#include <string>
#include "ctype.h"int main(){std::string s1;char a;getline(std::cin, s1);std::cin >> a;int strLen = s1.length();int count=0;for(int i=0;i<strLen;i++){if(tolower(s1[i]) == tolower(a))count++;}std::cout << count;return 0;
}

HJ3 明明都随机数

#include <iostream>
#include <algorithm>
#include <vector>int main(){std::vector<int> vec;int N,n;while(std::cin >> N){vec.clear();while(N--){std::cin >> n;vec.push_back(n);}// 排序sort(vec.begin(), vec.end());// 去重std::vector<int>::iterator pos = unique(vec.begin(), vec.end());vec.erase(pos, vec.end());// 输出for(int i=0; i<vec.size();i++){std::cout << vec.at(i) << std::endl;}};return 0;
}

HJ4 字符串分隔

#include <iostream>
#include <string>
#include <iomanip>using namespace std;int main()
{string s1;while(true){// 获取输入getline(cin, s1);// 获取长度int len = s1.length();if(!len)break;// 开始计算int m,n;m = len/8;n = len%8;for(int i=0;i<m;i++){cout << s1.substr(8*i, 8)<< endl;;}if(n){cout <<s1.substr(8*m,len);for(int i=0;i<8-n;i++)cout << "0";cout << endl;}}return 0;
}

HJ5 进制转换

#include <iostream>
#include <string>
#include <sstream>using namespace std;int main()
{string s1;while(cin >> s1){stringstream ss;ss << hex << s1 ;int d;ss >> d;cout << d << endl;}return 0;
}

HJ6 质数因子

#include <iostream>
#include <math.h>using namespace std;int main()
{long num;while(cin>>num){for (int i = 2; i <= sqrt(num); i++) {while (num % i == 0) {cout << i << " ";num = num / i;}}if (num>1) cout << num << " ";}return 0;
}

HJ7 取近似值

#include <iostream>int main()
{double dNum;std::cin >> dNum;int iNum = dNum+0.5;std::cout << iNum;    return 0;
}

HJ8 合并表记录

#include <iostream>
#include <vector>
#include <map>
#include <algorithm>using namespace std;int main()
{int N;cin >> N;map<int,int> INDEX_VALUE;while(N--){int index,value;cin >> index >> value;map<int,int>::iterator sub;sub = INDEX_VALUE.find(index);if(sub != INDEX_VALUE.end()){INDEX_VALUE[index] += value;}else{INDEX_VALUE.insert(make_pair(index,value));;}}map<int,int>::iterator iter=INDEX_VALUE.begin();while(iter != INDEX_VALUE.end()){cout << iter->first << " " << iter->second << endl;iter++;}return 0;
}

HJ9 提取不重复的整数

#include <iostream>
#include <vector>
#include <algorithm>using namespace std;int main()
{int N;cin >> N;string Nstr = to_string(N);int Nlen = Nstr.length();vector<int> vec;for(int i=Nlen-1;i>=0;i--){char Nchar = Nstr.at(i);int num = Nchar-0x30;vector<int>::iterator iter = find(vec.begin(),vec.end(),num);if(iter == vec.end()){vec.push_back(num);cout << num;}}return 0;
}

HJ10 字符个数统计

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>using namespace std;int main()
{string str1;getline(cin, str1);int count=0;vector<char> vec;for(int i=0;i<str1.length();i++){char temp = str1[i];if(temp>=0 || temp<=127){vector<char>::iterator iter = find(vec.begin(), vec.end(), temp);if(iter == vec.end()){vec.push_back(temp);++count;}}}cout << count;return 0;
}

HJ11 数字颠倒

#include <iostream>
#include <string>using namespace std;int main()
{int num;cin >> num;// 整数转stringstring numStr = to_string(num);// 倒序string result(numStr.rbegin(), numStr.rend());cout << result;return 0;
}

HJ12 字符串反转

#include <iostream>
#include <string>using namespace std;int main()
{string s1;getline(cin, s1);string s2(s1.rbegin(), s1.rend());cout << s2;return 0;
}

HJ13 句子逆序

#include <iostream>
#include <string>
#include <vector>using namespace std;void StringSplit(string s, char splitChar, vector<string>& vec)
{if(vec.size()>0)vec.clear();int length = s.length();int start = 0;for(int i=0;i<length;i++){if(s[i] == splitChar && i==0){start +=1;}else if(s[i] == splitChar){vec.push_back(s.substr(start,i-start));start = i+1;}else if(i == length-1){vec.push_back(s.substr(start,i+1-start));}}
}int main()
{// 获取输入string s1;getline(cin, s1);// 填充到vectorvector<string> vec;StringSplit(s1,' ',vec);// 输出for(int i=vec.size()-1; i>=0; i--){cout << vec[i] << " ";}return 0;
}

HJ14 字符串排序

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>using namespace std;int main()
{int N;vector<string> vec;while(cin >> N){vec.clear();while(N--){string s;cin >> s;vec.push_back(s);}sort(vec.begin(),vec.end());vector<string>::iterator iter = vec.begin();while(iter != vec.end()){cout << *iter << endl;++iter;}}return 0;
}

HJ15 求int型数组在内存中储存时1的个数

#include <iostream>using namespace std;int main()
{int num;cin >> num;int count=0;while(num!=0){count++;num=num&(num-1);}cout << count;return 0;
}

HJ21 简单密码破解

#include <iostream>
#include <string>using namespace std;int main()
{string str;while(getline(cin, str)){if(!str.length())break;string newStr="";for(int i=0;i<str.length();i++){char temp = str[i];// 转换大写if((temp>='A')&&(temp<='Y'))temp += ('a'-'A'+1);else if(temp =='Z')temp = 'a';// 转换小写else if(temp>='a'){if(temp<'d')temp = '2';else if(temp<'g')temp = '3';else if(temp<'j')temp = '4';else if(temp<'m')temp = '5';else if(temp<'p')temp = '6';else if(temp<'t')temp = '7';else if(temp<'w')temp = '8';else if(temp<='z')temp = '9';}// 数字不变string s(1,temp);newStr+=s;}cout << newStr << endl;}return 0;
}

HJ22 汽水瓶

#include <iostream>using namespace std;int calc(int num)
{int m = num/3;int n = num%3;if(m+n < 2)return m;else if(m+n==2)return m+1;else return m+calc(m+n);
}int main()
{while(true){int num;cin >> num;if(num==0)break;cout << calc(num) << endl;}return 0;
}

HJ26 字符串排序

#include <iostream>
#include <string>
#include <vector>using namespace std;int main()
{// 获取输入string s;while(getline(cin, s)){if(!s.length())break;// 找出字符串的所有英文字符位置和值vector<int> pos;vector<char> vecChar;for(int i=0;i<s.length();i++){if((s[i]>='A' && s[i]<='Z')||(s[i]>='a' && s[i]<='z')){pos.push_back(i);vecChar.push_back(s[i]);}}// 从A到Z进行字母查找,填充到s字符串指定位置int pushPos=0;for(char c='A';c<='Z';c=c+1){for(int i=0;i<vecChar.size();i++){if((vecChar[i] == c)||(vecChar[i] == c+32)){s[pos[pushPos++]] = vecChar[i];}}}cout << s << endl;}return 0;
}

HJ34 图片整理

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>using namespace std;int main()
{string s;while(getline(cin, s)){if(!s.length())break;// 将字符串内容放入容器vector<char> vecChar(s.begin(),s.end());// 将容器内容进行排序sort(vecChar.begin(),vecChar.end());// 将排序后的内容转换为字符串string sOut(vecChar.begin(),vecChar.end());cout << sOut << endl;        }return 0;
}

HJ35 蛇形矩阵

#include <iostream>using namespace std;int main()
{int N;while(cin>>N){for(int i=1;i<=N;i++){for(int j=1;j<N-(i-1);j++){cout<< ((j+i-1)*(j+i-1)+j+i-1)/2 -(i-1)<<" ";}cout<< (N*N+N)/2-(i-1) <<endl;}}return 0;
}

HJ37 统计每个月兔子的总数

#include <iostream>using namespace std;int calcNum(int month)
{if ((month==1)||(month==2))return 1;elsereturn calcNum(month-1)+calcNum(month-2);
}int main()
{int month;while(cin >> month){cout << calcNum(month) << endl;}return 0;
}

HJ38 求小球落地5次后所经历的路程和第5次反弹的高度

#include <iostream>using namespace std;int main()
{int H;while(cin >> H){float height = H;float sum = 0;for(int i=0;i<5;i++){if(i==0){sum += height;}else{sum += 2*height;}height = height / 2;}cout << sum << endl;cout << height << endl;}return 0;
}

HJ40 输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数

#include <iostream>
#include <string>using namespace std;int main()
{string str;while(getline(cin, str)){int len = str.length();if(len ==0)break;int num_1=0;int num_2=0;int num_3=0;int num_4=0;for(int i=0;i<len;i++){char temp = str[i];if((temp>='A' && temp<='Z')||(temp>='a' && temp<='z'))num_1++;else if(temp == ' ')num_2++;else if(temp>='0' && temp<='9')num_3++;elsenum_4++;}cout << num_1 << endl;cout << num_2 << endl;cout << num_3 << endl;cout << num_4 << endl;}return 0;
}

牛客网C++刷题《华为机试》相关推荐

  1. 牛客网Java刷题知识点之关键字static、static成员变量、static成员方法、static代码块和static内部类...

    不多说,直接上干货! 牛客网Java刷题知识点之关键字static static代表着什么 在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个"伪全局"的概 ...

  2. 牛客网Java刷题知识点之构造函数可以调用一般函数,但是一般函数不可以直接调用构造函数...

    不多说,直接上干货! 通过 牛客网Java刷题知识点之构造函数是什么.一般函数和构造函数什么区别呢.构造函数的重载.构造函数的内存图解 我们对构造函数有了一个比较清楚的认识,当我们在创建对象时,我们会 ...

  3. 牛客网Java刷题知识点之Java 集合框架的构成、集合框架中的迭代器Iterator、集合框架中的集合接口Collection(List和Set)、集合框架中的Map集合...

    不多说,直接上干货! 集合框架中包含了大量集合接口.这些接口的实现类和操作它们的算法. 集合容器因为内部的数据结构不同,有多种具体容器. 不断的向上抽取,就形成了集合框架. Map是一次添加一对元素. ...

  4. 牛客网Java刷题知识点之ArrayList 、LinkedList 、Vector 的底层实现和区别

    不多说,直接上干货! 这篇我是从整体出发去写的. 牛客网Java刷题知识点之Java 集合框架的构成.集合框架中的迭代器Iterator.集合框架中的集合接口Collection(List和Set). ...

  5. 牛客网Veirlog刷题答案目录(持续更新)

    牛客网Veirlog刷题答案目录(持续更新) 基础篇 进阶篇 基础篇 1.VL1--四选一多路选择器 2.VL2--异步复位的串联T触发器 3.VL3--奇偶校验 4.VL4--移位运算与乘法 5.V ...

  6. 牛客网java刷题笔记2019-1-4

    牛客网java刷题笔记 2019-1-4 1.java中可以用类中构造器调用其他类构造器(这个和C++中构造函数很类似)用于初始化程序变量值, 构造器和方法的区别: 功能和作用的不同 构造器是为了创建 ...

  7. 牛客网SQL刷题笔记(MySQL)

    牛客网SQL刷题笔记(MySQL) 此博客集合LeetCode.牛客网常见的题型及其解法,侵删 目录 牛客网SQL刷题笔记(MySQL) 类型1:查找排名第几的数据 SQL2 查找入职员工时间排名倒数 ...

  8. 牛客网C++刷题 万能头文件

    牛客网C++刷题 万能头文件 最近在牛客网刷题,涉及到C++编码时有时不记得头文件名称,这时可以使用 #include<bits/stdc++.h> 这个万能头文件来代替. 特此记录一下.

  9. 算法记录 牛客网 leetcode刷题记录

    算法记录 & 牛客网 & leetcode刷题记录 解题思路 STL容器 常用算法模板 堆排序 插入排序 快速排序 BFS层序遍历 二叉树 JZ55 二叉树的深度 BST(binary ...

  10. 【牛客网】C/C++牛客网专项刷题(02)

    以下为牛客网C/C++专项刷题: 1.虚函数不可以内联,因为虚函数是在运行期的时候确定具体调用的函数,内联是在编译期的时候进行代码展开,两者冲突,所以没有一起使用的做法. 2.C++中构造函数和析构函 ...

最新文章

  1. python框架 mysql数据库_在Python的框架中为MySQL实现restful接口的教程
  2. SQL取最大值编码(自动编码)
  3. 选择省份时,自动显示对应省份的城市
  4. TCP/IP,三次握手四次挥手,TCP/UDP , HTTP/HTTPS
  5. 看看这段代码有没有内存泄露?
  6. TCP和TCP/IP的区别
  7. 微软原版Windows 8 原版镜像
  8. python与审计底稿关系_干货!审计底稿,六大禁忌
  9. shell中变量截取
  10. 01_ue4进阶_PBR材质
  11. oracle使用text类型,oracle数据库中text类型用什么类型表示
  12. 电视机尺寸一览表2022
  13. java选择结构与分支结构
  14. 休闲娱乐之和成熟的男生谈恋爱
  15. HP打印机连不上解决办法
  16. python QRcode
  17. 如何利用亚马逊的底层逻辑是什么 寻找爆品搜索词排名?算法 it
  18. 将C:\Users下中文用户名修改为英文(Win10)
  19. PHP 打印支票,用Access2007解决支票打印的日期大写问题
  20. Tomcat7w.exe无法start

热门文章

  1. DBMS_AW_EXP: not AW$
  2. Chrome自动更新到78.0.3904.70后出现“Aw, Snap!”错误,所有页面不能打开。
  3. echarts 散点图实现正负值颜色不同,方向不同
  4. 想转行做大数据开发,求各路大神给指条明路?
  5. 安装包时遇到 requires a peer of @angular/core、unmet peer dependency...的问题
  6. android 信息(mms)的故事(五)-- 发彩信
  7. dayjs 计算两个日期差
  8. MATLAB中常用到的符号汇总(持续更新)
  9. 灰度图像--形态学处理:腐蚀、膨胀、开操作、闭操作、顶帽、底帽等
  10. 单应性矩阵的理解及求解3