当前位置: 首页 > news >正文

网站应当实现那些功能 流程如何设计西安创意网站建设

网站应当实现那些功能 流程如何设计,西安创意网站建设,改行做网站,有域名怎么免费建站算法学习——华为机考题库4#xff08;HJ26 - HJ30#xff09; HJ26 字符串排序 描述 编写一个程序#xff0c;将输入字符串中的字符按如下规则排序。 规则 1 #xff1a;英文字母从 A 到 Z 排列#xff0c;不区分大小写。 如#xff0c;输入#xff1a; Type 输出…算法学习——华为机考题库4HJ26 - HJ30 HJ26 字符串排序 描述 编写一个程序将输入字符串中的字符按如下规则排序。 规则 1 英文字母从 A 到 Z 排列不区分大小写。 如输入 Type 输出 epTy 规则 2 同一个英文字母的大小写同时存在时按照输入顺序排列。 如输入 BabA 输出 aABb 规则 3 非英文字母的其它字符保持原来的位置。 如输入 By?e 输出 Be?y **数据范围**输入的字符串长度满足 1≤n≤1000 输入描述 输入字符串 输出描述 输出字符串 示例 代码解析 #include algorithm #include iostream #include string #include vector using namespace std;static bool cmp(pairchar,int p1, pairchar,int p2) {int c1 p1.first , c2 p2.first;int i1 , i2;if(c1 a c1 z) i1 c1 - a;else i1 c1 - A;if(c2 a c2 z) i2 c2 - a;else i2 c2 - A;if(i1 i2) return true;else if(i1 i2) return false;return p1.second p2.second; }int main() {string tmpStr;vectorpairchar,int tmpVec;getline(cin, tmpStr);for (int i0 ; itmpStr.size() ; i){if( (tmpStr[i] A tmpStr[i] Z) || (tmpStr[i] a tmpStr[i] z) )tmpVec.push_back({tmpStr[i],i});}sort(tmpVec.begin(), tmpVec.end(),cmp);int indnx 0;for (int i0 ; itmpStr.size() ; i){if( (tmpStr[i] A tmpStr[i] Z) || (tmpStr[i] a tmpStr[i] z) ){tmpStr[i] tmpVec[indnx].first;indnx;}}couttmpStr;} // 64 位输出请用 printf(%lld)HJ27 查找兄弟单词 描述 定义一个单词的“兄弟单词”为交换该单词字母顺序注可以交换任意次而不添加、删除、修改原有的字母就能生成的单词。 兄弟单词要求和原来的单词不同。例如 ab 和 ba 是兄弟单词。 ab 和 ab 则不是兄弟单词。 现在给定你 n 个单词另外再给你一个单词 x 让你寻找 x 的兄弟单词里按字典序排列后的第 k 个单词是什么 注意字典中可能有重复单词。 数据范围 1≤n≤1000 输入的字符串长度满足 1≤len(str)≤10 1≤kn 输入描述 输入只有一行。 先输入字典中单词的个数n再输入n个单词作为字典单词。 然后输入一个单词x 最后后输入一个整数k 输出描述 第一行输出查找到x的兄弟单词的个数m 第二行输出查找到的按照字典顺序排序后的第k个兄弟单词没有符合第k个的话则不用输出。 示例 代码解析 #include algorithm #include iostream #include set#include string #include vector using namespace std;bool cheak(string aim , string date) {if(aim date) return false;multisetchar aimSet;multisetchar dateSet;for(int i0 ; iaim.size() ;i)aimSet.insert(aim[i]);for(int i0 ; idate.size() ;i)dateSet.insert(date[i]);if(aimSet dateSet) return true;else return false;}int main() {int num;vectorstring date;vectorstring result;cinnum;string tmpStr;while(num--) {cintmpStr;date.push_back(tmpStr);}string aim;cinaim;int k;cink;k - 1;for(int i0 ; idate.size() ; i){if(cheak(aim, date[i]) true)result.push_back(date[i]);}sort(result.begin(), result.end());coutresult.size()endl;if(result.size() k) coutresult[k];} // 64 位输出请用 printf(%lld)HJ28 素数伴侣 描述 题目描述 若两个正整数的和为素数则这两个正整数称之为“素数伴侣”如2和5、6和13它们能应用于通信加密。现在密码学会请你设计一个程序从已有的 N N 为偶数个正整数中挑选出若干对组成“素数伴侣”挑选方案多种多样例如有4个正整数25613如果将5和6分为一组中只能得到一组“素数伴侣”而将2和5、6和13编组将得到两组“素数伴侣”能组成“素数伴侣”最多的方案称为“最佳方案”当然密码学会希望你寻找出“最佳方案”。 输入: 有一个正偶数 n 表示待挑选的自然数的个数。后面给出 n 个具体的数字。 输出: 输出一个整数 K 表示你求得的“最佳方案”组成“素数伴侣”的对数。 数据范围 1≤n≤100 输入的数据大小满足 2≤val≤30000 输入描述 输入说明 1 输入一个正偶数 n 2 输入 n 个整数 输出描述 求得的“最佳方案”组成“素数伴侣”的对数。 示例 代码解析 #includeiostream #includevector using namespace std;bool isprime(int num)//判断一个数是否是素数 { for(int i 2; i * i num; i)//遍历到根号num{ if(num % i 0) //检查有无余数return false;}return true; }bool find(int num, vectorint evens, vectorbool used, vectorint match) {for(int i 0; i evens.size(); i)//遍历每个偶数与奇数比较{ if(isprime(num evens[i]) used[i] false){used[i] true;if(match[i] 0 || find(match[i], evens, used, match) true)//如果第i个偶数还未配对或者跟它配对的奇数还有别的选择{ match[i] num; //则配对该数return true;}}}return false; } int main(){int n;cin n;vectorint odds;vectorint evens;vectorint nums(n);for(int i 0; i n; i)//输入n个数{ cin nums[i];if(nums[i] % 2) //奇数odds.push_back(nums[i]);else //偶数evens.push_back(nums[i]);}int count 0;if(odds.size() 0 || evens.size() 0)//缺少奇数或者偶数无法构成素数{ cout count endl;return 0;}vectorint match(evens.size(), 0); //统计每个偶数的配对是哪个奇数for(int i 0; i odds.size(); i)//遍历每个奇数{ vectorbool used(evens.size(), false); //每一轮偶数都没用过if(find(odds[i], evens, used, match) true) //能否找到配对的偶数且要最优count;}cout count endl;return 0; } HJ29 字符串加解密 描述 对输入的字符串进行加解密并输出。 加密方法为 当内容是英文字母时则用该英文字母的后一个字母替换同时字母变换大小写,如字母a时则替换为B字母Z时则替换为a 当内容是数字时则把该数字加1如0替换11替换29替换0 其他字符不做变化。 解密方法为加密的逆过程。 数据范围输入的两个字符串长度满足 1≤n≤1000 保证输入的字符串都是只由大小写字母或者数字组成 输入描述 第一行输入一串要加密的密码 第二行输入一串加过密的密码 输出描述 第一行输出加密后的字符 第二行输出解密后的字符 示例 代码解析 #include iostream #include string using namespace std;void code(string tmp) {for(int i0 ; i tmp.size() ; i){if(tmp[i] a tmp[i] z) cout (char)(tmp[i] - a A 1);else if( tmp[i] z) coutA;else if(tmp[i] A tmp[i] Z) cout (char)(tmp[i] - A a 1);else if( tmp[i] Z) couta;else if(tmp[i] 0 tmp[i] 9) cout(char)(tmp[i] 1);else if( tmp[i] 9) cout0;} }void uncode(string tmp) {for(int i0 ; i tmp.size() ; i){if(tmp[i] a tmp[i] z) cout (char)(tmp[i] - a A - 1);else if( tmp[i] a) coutZ;else if(tmp[i] A tmp[i] Z) cout (char)(tmp[i] - A a - 1);else if( tmp[i] A) coutz;else if(tmp[i] 0 tmp[i] 9) cout(char)(tmp[i] - 1);else if( tmp[i] 0) cout9;} }int main() {string Str1;string Str2;cinStr1;cinStr2;code(Str1);coutendl;uncode(Str2);} // 64 位输出请用 printf(%lld)HJ30 字符串合并处理 描述 按照指定规则对输入的字符串进行处理。 详细描述 第一步将输入的两个字符串str1和str2进行前后合并。如给定字符串 “dec” 和字符串 “fab” 合并后生成的字符串为 “decfab” 第二步对合并后的字符串进行排序要求为下标为奇数的字符和下标为偶数的字符分别从小到大排序。这里的下标的意思是字符在字符串中的位置。注意排序后在新串中仍需要保持原来的奇偶性。例如刚刚得到的字符串“decfab”分别对下标为偶数的字符’d’、‘c’、‘a’和下标为奇数的字符’e’、‘f’、b’进行排序生成 ‘a’、‘c’、‘d’ 和 ‘b’ 、‘e’ 、‘f’再依次分别放回原串中的偶数位和奇数位新字符串变为“abcedf” 第三步对排序后的字符串中的’0’‘9’、‘A’‘F’和’a’~f’字符需要进行转换操作。 转换规则如下 对以上需要进行转换的字符所代表的十六进制用二进制表示并倒序然后再转换成对应的十六进制大写字符注字符 a~f 的十六进制对应十进制的10~15大写同理。 如字符 ‘4’其二进制为 0100 则翻转后为 0010 也就是 2 。转换后的字符为 ‘2’。 如字符 ‘7’其二进制为 0111 则翻转后为 1110 对应的十进制是14转换为十六进制的大写字母为 ‘E’。 如字符 ‘C’代表的十进制是 12 其二进制为 1100 则翻转后为 0011也就是3。转换后的字符是 ‘3’。 根据这个转换规则由第二步生成的字符串 “abcedf” 转换后会生成字符串 “5D37BF”。 **数据范围**输入的字符串长度满足 1≤n≤100 输入描述 样例输入两个字符串用空格隔开。 输出描述 输出转化后的结果。 示例 代码解析 #include algorithm #include iostream #include string #include vector using namespace std;//字典法只考虑 0 到 9 a 到 fA 到 F 的字符即可其余字符不做改变照原输出 string Intput 0123456789abcdefABCDEF; //输入参照字典数字 大小写字母 // int Output[] 084c2a6e195d3b7f5d3b7f; //输出参照字典小写 string Output 084C2A6E195D3B7F5D3B7F; //输出参照字典数字 大写字母 char code( char tmpChar) {int indnx Intput.find(tmpChar);if(indnx ! -1) return Output[ indnx ];else return tmpChar;}int main() {string Str1 , Str2;cinStr1Str2;string Str Str1 Str2;vectorchar even;vectorchar odd;for(int i0 ; iStr.size() ; i){if(i%2 0) even.push_back(Str[i]);else odd.push_back(Str[i]);}sort(even.begin(), even.end());reverse(even.begin(),even.end());sort(odd.begin(), odd.end());reverse(odd.begin(),odd.end());for(int i0 ; iStr.size() ; i){if(i%2 0){Str[i] even.back();even.pop_back();} else {Str[i] odd.back();odd.pop_back();}}// coutStrendl;for(int i0 ; iStr.size() ; i){Str[i] code(Str[i]);}coutStrendl;} // 64 位输出请用 printf(%lld)
http://www.eeditor.cn/news/124582/

相关文章:

  • 培训机构 网站建设wordpress 可以上传存储附件
  • 织梦网站logo怎么换网站建设是否包含等保
  • 索莱宝做网站推广普通话内容50字
  • 漳州微网站建设公司推荐工程师招聘网站
  • 外外贸网站推广方案免费模板素材软件
  • 专业的句容网站建设广告营销案例100例
  • 上饶建设银行网站正规代加工在哪里找
  • 深圳网站建设就q479185700顶上沧州大型企业网站建设
  • 哪些安防公司做了手机网站apicloud安装wordpress
  • 网上做翻译兼职网站好房产网签
  • dw做网站菜单栏网站建设 华博互联
  • 做标准件网站哈尔滨建设信息网
  • 响应式网站用什么开发的郑州seo管理
  • 网页设计比较优秀的网站北京网站开发外包
  • 对接 网站后台龙岩seo外包公司
  • 用vs做的网站怎么打开吗蚌埠企业网站建设
  • 基于php技术的小型企业网站开发凡科建站快车官网
  • 电子商务网站开发基础电商培训视频教程
  • 佛山网站建设怎么办门户网站 用什么语言
  • 如何将视频添加到网站上建设校园网站必要性
  • 免费开发个人网站百度推广关键词价格查询
  • 怎么用ftp修改网站图片图片转换成网址链接
  • 策划案网站wordpress固定链接怎么设置
  • 网站ui设计WordPress写作app
  • 深圳微信建网站wordpress无法缩进
  • 买网站平台名字吗厦门网站建设的公司哪家好
  • wordpress建站教程第六节网站开发尾款如何做账
  • 义乌做网站多少钱南山网站建设深圳信科
  • 长沙网站开发 58新乡网络公司推荐
  • 做新网站都需要准备什么动漫制作专业正规吗