c++算法练习(3)石头剪刀布、输出亲朋字符串、配对碱基对、标准库的字符替换、密码翻译

#include <string>vector<string>results;results.push_bask(string1);for(const auto &result :result)//字符串可以用下表访问string myString;string.length()ss.replace(ss,find('A'),1,'T');char operator()(char ch) const class SomeClass {private:int memberVar;public:SomeClass(int param) : memberVar(param) {} };
#include <algorithm>transform()template <class InputIterator, class OutputIterator, class UnaryOperation> OutputIterator transform(InputIterator first, InputIterator last, OutputIterator result, UnaryOperation op);

1、 石头剪刀布

石头剪子布,是一种猜拳游戏。起源于中国,然后传到日本、朝鲜等地,随着亚欧贸易的不断发展它传到了欧洲,到了近现代逐渐风靡世界。简单明了的规则,使得石头剪子布没有任何规则漏洞可钻,单次玩法比拼运气,多回合玩法比拼心理博弈,使得石头剪子布这个古老的游戏同时用于意外"与"技术" 两种特性,深受世界人民喜爱。
游戏规则:石头打剪刀,布包石头,剪刀剪布。
现在,需要你写一个程序来判断石头剪子布游戏的结果。
输入格式
输入包括 N +1行:
第一行是一个整数 N,表示一共进行了 N 次游戏。1 < N < 100.接下来 N 行的每一行包括两个字符串,表示游戏参与者 Player1,Player2 的选择(石头、剪子或者是布):S1 S2
字符串之间以空格隔开 S1,S2 只可能取值在{“Rock”,“Scissors”,“Paper”}(大小写敏感)中。输出格式
输出包括 N 行,每一行对应一个胜利者"Player1"或者"Player2”,或者游戏出现平局,则输出"Tie”

在这里插入图片描述

#include <iostream>
#include <vector>
#include <string>
using namespace std;
//写一个函数,这个函数里面判断
string judge(const string &play1,const string &play2)
{if(play1==play2){return "Tie";}else if((play1=="Scissors"&&play2=="Paper")||(play1=="Paper"&&play2=="Rock")||(play1=="Rock"&&play2=="Scissors")){return "Player1";}else {return "Player2";}}
int main(){int number;cin>>number;cin.ignore();vector<string>results;for(int i =0;i<number;i++){string play1 ,play2;cin>>play1>>play2;results.push_back(judge(play1, play2));}for(const auto &result:results){cout<<result<<endl;}return 0;
}

2、输出亲朋字符串

编写程序,求给定字符串s的亲朋字符串 81。
亲朋字特串 s 定义如下:给定字特串s的第一个字特的 ASCI值加第二个字特的 ASCⅡ值,得到第一个亲朋字符,给定字特串s的第二个字特的 ASCⅡ值加第三个字特的 ASCI 值,得到第二个亲朋字符;依此类推,直到给定字符串s的倒数第二个字符。亲朋字符串的最后一个字符由给定字符串s的最后一个字符 ASOI 值加 s的第一个字特的 ASCI 值。
输入格式
输入一行,个长度大于等于 2,小于等于 100 的字符串。字符串中每个字符的 ASCII 值不大于 63
输出格式
输出一行为变换后的亲朋字答串。输入保证变换后的字符串只有一行

在这里插入图片描述

#include <iostream>
#include <string>using namespace std;int main() {string S;getline(cin, S);string results;for (int i = 0; i < S.length(); i++) {int temp = (i + 1) % S.length();results.push_back(S[i] + S[temp]);}cout << results;return 0;
}

3、配对碱基对

脱氧核糖核酸(DNA)由两条互补的碱基链以双螺旋的方式结合而成。而构成 DNA 的碱基共有4种,分别为腺瞟呤(A)、鸟嘌呤(G)、胸腺嘧啶(T)和胞嘧啶©。我们知道,在两条互补碱基链的对应位置上,腺瞟呤总是和胸腺啶配对,鸟嘌呤总是和胞嘧啶配对。你的任务就是根据一条单链上的碱基序列,给出对应的互补链上的碱基序列。
输入格式
一个字符串,表示一条碱基链。这个字符串只含有大写字母 A、T、G、C,分别表示腺瞟呤、胸腺啶、鸟嘌呤和胞啶。字符串长度不超过 255。
输出格式
一个只含有大写字母 A、T、G、C 的字符串,为与输入的碱基链互补的碱基链。

在这里插入图片描述

#include <iostream>
#include <string>using namespace std;int main() {string ss;getline(cin, ss);string results;for (char c : ss) {if (c == 'A') {results += 'T';} else if (c == 'T') {results += 'A';} else if (c == 'G') {results += 'C';} else if (c == 'C') {results += 'G';}}cout << results;return 0;
}

4、标准库的字符替换

这里的oldChar(oldChar)是一种初始化成员变量的语法形式。括号左边的oldChar是类的成员变量,括号右边的oldChar是构造函数的参数。这种写法表示使用构造函数传入的参数值来初始化成员变量。
由于构造函数参数和成员变量同名,这种写法在语法上明确了初始化的来源(即使用传入的参数值),避免了混淆。如果成员变量和参数名不同,其含义会更加清晰,例如:

class SomeClass {
private:int memberVar;
public:SomeClass(int param) : memberVar(param) {} 
};

在这里插入图片描述

#include <iostream>
#include <string>
#include <algorithm>using namespace std;class CharReplacer {
public:CharReplacer(char oldChar, char newChar) : oldChar(oldChar), newChar(newChar) {}char operator()(char ch) const {return (ch == oldChar)? newChar : ch;}private:char oldChar;char newChar;
};int main() {string ss;cin >> ss;char c, T;cin >> c >> T;string results = ss;transform(results.begin(), results.end(), results.begin(), CharReplacer(c, T));cout << results;return 0;
}

5、密码翻译

上一步的代码不能对下一步的代码产生影响

在情报传递过程中,为了防止情报被截获,往往需要对情报用一定的方式加密,简单的加密算法虽然不足以完全避免情报被破译,但仍然能防止情报被轻易的识别。我们给出一种最简的的加密方法,对给)的一个字符串,把其中从 ay,A-Y的字母用其后继字母替代,把z和Z用a和A替代,其他非字母字符不变,则可得到一个简单的加密字符串。
输入格式
输入一行,包含一个字符串,长度小于 80 个字符。
输出格式
输出每行字符串的加密字符串。
格式说明
输出时每行末尾的多余空格,不影响答案正确性
样例输入
Hello! How are you!
样例输出
Tfm
px bsf zov

在这里插入图片描述

#include <iostream>
#include <string>using namespace std;int main() {string input;getline(cin, input);string encrypted;for (char c : input) {if ((c >= 'a' && c < 'z') || (c >= 'A' && c < 'Z')) {c++;} else if (c == 'z') {c = 'a';} else if (c == 'Z') {c = 'A';}encrypted += c;}cout << encrypted << endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/884909.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot二手车交易管理系统-计算机毕业设计源码02893

目 录 摘要 1 绪论 1.1 选题背景与意义 1.2开发现状 1.3论文结构与章节安排 2 二手车交易管理系统系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系统用例…

Linux scp命令 | 菜鸟教程-从本地复制到远程/从远程复制到本地

目录 Linux scp命令 语法 实例 1、从本地复制到远程 2、从远程复制到本地 说明 文章来源&#xff1a;Linux scp命令 | 菜鸟教程 Linux scp命令 nux scp 命令用于 Linux 之间复制文件和目录。 scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远…

linux node vue3 部署手册

第一步&#xff1a;在linux 系统中安装node 1、在网址&#xff1a;https://nodejs.org/dist/ 下载对应版本的安装包。 2、解压缩下载的压缩包到任意位置&#xff0c;推荐home下。 样例路径为&#xff1a;/home/syl/node-v20.17.0-linux-x64.tar.xz 样例&#xff1a; tar -xv…

文件外发记录监控 | 公司文档外发如何跟踪数据流向?6大策略让文件不再滥发泄密! (2024全面解读)

信息化浪潮&#xff0c;公司文档的安全管理犹如一场没有硝烟的战争。 每一个文件的外发&#xff0c;都可能成为信息泄露的缺口&#xff0c;影响企业的核心竞争力。 如何有效地监控文件外发记录&#xff0c;跟踪数据流向&#xff0c;成为企业亟需解决的问题。 本文将全面解读六…

如何在 uniapp 中实现图形验证码

全篇大概2000 字&#xff08;含代码&#xff09;&#xff0c;建议阅读时间10分钟。 什么是图形验证码&#xff1f; 图形验证码&#xff08;也称为图片验证码或验证码图像&#xff09;通常用于防止机器人自动提交表单&#xff0c;确保用户是人工操作。 一、需求 我们希望在一个…

机器学习—例子:图像识别

在上篇文章中&#xff0c;在一个需求预测示例中看到了神经网络是如何工作的&#xff0c;那么如何将类似类型的想法应用于计算机视觉应用程序。 如果你正在开发人脸识别应用程序&#xff0c;让我们深入研究一下。假设一个神经网络将这样的图片作为输入&#xff0c;并输出图片中…

别再被多线程搞晕了!一篇文章轻松搞懂 Linux 多线程同步!

前言 大家有没有遇到过&#xff0c;代码跑着跑着&#xff0c;线程突然抢资源抢疯了&#xff1f;其实&#xff0c;这都是“多线程同步”在作怪。多线程同步是个老生常谈的话题&#xff0c;可每次真正要处理时还是让人头疼。这篇文章&#xff0c;带你从头到尾掌握 Linux 的多线程…

华为OD机试真题-推荐多样性

题目描述 推荐多样性需要从多个列表中选择元素&#xff0c;一次性要返回N屏数据&#xff08;窗口数量&#xff09;&#xff0c;每屏展示K个元素&#xff08;窗口大小&#xff09;&#xff0c;选择策略&#xff1a; 各个列表元素需要做穿插处理&#xff0c;即先从第一个列表中为…

HTML、CSS 和 JavaScript 在网页设计方面的介绍

关于 HTML、CSS 和 JavaScript 在网页设计方面的介绍: HTML(超文本标记语言 - HyperText Markup Language) 结构基础:HTML 是网页内容的骨架。它通过一系列的标签来定义网页中的各种元素,比如 <html> 标签是整个页面的根标签,<head> 标签用于包含页面的元信…

对于用户密码的加密

这篇文章也是在做项目的时候使用到的内容&#xff0c;来做成一篇博客 &#xff08;一&#xff09;加密是什么&#xff1f; 我们在https中也说到了加密&#xff0c;因为https就是http加密后的产物&#xff0c;当时又说到了运营商劫持&#xff0c;然后引出加密&#xff0c;然后加…

Hive数据库操作语法

数据类型 内部表和外部表 内部表 &#xff08;CREATE TABLE table_name ......&#xff09;未被external关键字修饰的即是内部表&#xff0c; 即普通表。 内部表又称管理表,内部表数据存储的位置由hive.metastore.warehouse.dir参数决定&#xff08;默认&#xff1a;/user/h…

车载通信架构 --- PNC、UB与信号的关系

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所有人的看法和评价都是暂时的,只有自己的经历是伴随一生的,几乎所有的担忧和畏惧,都是来源于自己的想象,只有你真的去做了,才会发现有多快乐。…

CLIP-Driven Universal Model for Organ Segmentation and Tumor Detection论文解读和实验复现

背景 医学图像数据集的增长&#xff1a;随着公开的医学图像数据集数量的增加&#xff0c;自动化器官分割和肿瘤检测技术得到了显著发展。数据集的局限性&#xff1a;尽管数据集数量增加&#xff0c;但每个数据集通常规模较小&#xff0c;且存在部分标注问题。这意味着不是所有…

如何使用Varjo直接观看Blender内容

最近&#xff0c;开源的3D建模程序Blender为Varjo提供了出色的OpenXR支持&#xff0c;包括四视图和凹进渲染扩展。但是在Blender中&#xff0c;默认不启用VR场景检查。要开始使用VR场景检查&#xff0c;只需遵循以下步骤&#xff1a; 1. 下载并安装Blender 2.启用Blender VR场景…

Go 语言之搭建通用 Web 项目开发脚手架

Go 语言之搭建通用 Web 项目开发脚手架 MVC 模式 MVC 模式代表 Model-View-Controller&#xff08;模型-视图-控制器&#xff09; 模式。这种模式用于应用程序的分层开发。 Model&#xff08;模型&#xff09; - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑&…

Python爬虫基础-正则表达式!

前言 正则表达式是对字符串的一种逻辑公式&#xff0c;用事先定义好的一些特定字符、及这些特定字符的组合&#xff0c;组成一个“规则的字符串”&#xff0c;此字符串用来表示对字符串的一种“过滤”逻辑。正在在很多开发语言中都存在&#xff0c;而非python独有。对其知识点…

AI之硬件对比:据传英伟达Nvidia2025年将推出RTX 5090-32GB/RTX 5080-24GB、华为2025年推出910C/910D

AI之硬件对比&#xff1a;据传英伟达Nvidia2025年将推出RTX 5090-32GB/RTX 5080-24GB、华为2025年推出910C/910D 目录 Nvidia的显卡 Nvidia的5090/5080/4090/4080&#xff1a;据传传英伟达Nvidia RTX 5090后续推出32GB版且RTX 5080后续或推出24GB版 RTX 5090相较于RTX 4090&…

SRS:构建实时免费视频服务器的全方位指南

SRS&#xff08;Simple Realtime Server&#xff09;是一个开源的、基于MIT协议的实时视频服务器&#xff0c;以其简单、高效而著称。它支持多种流媒体协议&#xff0c;包括RTMP、WebRTC、HLS、HTTP-FLV、SRT、MPEG-DASH和GB28181等&#xff0c;使其成为直播和WebRTC领域的理想…

Day95 Docker

Docker的使用 1、Docker是什么 docker是一个用来管理镜像的容器 容器(container)&#xff1a;可以装东西 镜像( image )&#xff1a;所谓的镜像&#xff0c;你可以认为就是一个虚拟机 虚拟机&#xff1a;用软件代理硬件来模拟整个计算机的这样一套软件就成为 虚拟机 镜像说白了…

Imperva 数据库与安全解决方案

Imperva是网络安全解决方案的专业提供商&#xff0c;能够在云端和本地对业务关键数据和应用程序提供保护。公司成立于 2002 年&#xff0c;拥有稳定的发展和成功历史并于 2014 年实现产值1.64亿美元&#xff0c;公司的3700多位客户及300个合作伙伴分布于全球各地的90多个国家。…