ZISUOJ 数据结构--串及其应用

说明:

        都是字符串的基本操作没啥好说的,直接上题目和代码了。

题目列表:

问题 A: 字符串翻转

参考题解:

#include <iostream>
#include <string>
#include <algorithm>
using std::cin;
using std::cout;
using std::endl;int main(){cin.tie(nullptr)->sync_with_stdio(false);std::string s;cin >> s;std::reverse(s.begin(),s.end());cout << s << '\n';return 0;
}

问题 B: 字符串联接

 

参考题解:

#include <iostream>
#include <string>
#include <algorithm>
using std::cin;
using std::cout;
using std::endl;int main(){cin.tie(nullptr)->sync_with_stdio(false);std::string a,b;cin >> a >> b;std::string s = a+b;cout << s << endl;return 0;
}

问题 C: 三个字符串排序 

 

参考题解:

#include <iostream>
#include <string>
#include <algorithm>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main(){cin.tie(nullptr)->sync_with_stdio(false);string a[4];for(int i = 1;i<=3;i++) cin >> a[i];sort(a+1,a+4);cout << a[1] << '\n' << a[2] << '\n' << a[3] << '\n';return 0;
}

问题 D: 字符串匹配 

 

参考题解:

#include <iostream>
#include <string>
#include <cstring>
#include <algorithm>
using std::cin;
using std::cout;
using std::string;int main(){cin.tie(nullptr)->sync_with_stdio(false);string buf,s;int q,op,len;auto brute_force = [&]()->int{int ans = 0;for(int i = 0;i<buf.size();i++){for(int j = 0;j<s.size();j++){int k;for(k = 0;k<s.size();k++){if(buf[i+k]!=s[j+k]) break;if(i+k==buf.size()) break;if(j+k==s.size()) break;}ans = std::max(ans,k);}}return ans;};while(cin >> buf){cin >> q;while(q--){cin >> op;if(op==1){cin >> s;buf = buf+s;}else if(op==2){cin >> s;cout << brute_force() << '\n';}else if(op==3){cin >> len;buf = buf.substr(0,buf.size()-len);}}}return 0;
} 

问题 E: 字符串奇数位置右移 

 

参考题解:

#include <iostream>
#include <string>
#include <algorithm>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main(){cin.tie(nullptr)->sync_with_stdio(false);string s;cin >> s;if(s.size()&1){char tmp = s[s.size()-1];for(int i = s.size()-1;i>=2;i-=2){s[i] = s[i-2];}s[0] = tmp;}else{char tmp = s[s.size()-2];for(int i = s.size()-2;i>=2;i-=2){s[i] = s[i-2];}s[0] = tmp;}cout << s << endl;return 0;
}

问题 F: 字符串漂移

 

参考题解:

#include <iostream>
#include <string>
#include <algorithm>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main(){cin.tie(nullptr)->sync_with_stdio(false);string s;getline(cin,s);int len = s.size();s = ' '+s;for(int i = 1;i<=len;i++){if(s[i]>='a'&&s[i]<='z'){int k = i%26;if(s[i]-'a'<k){s[i] = 'z' - (k-s[i]+'a')+1;}else s[i] = s[i] - k;}}cout << s.substr(1) << endl;return 0;
}

问题 G: 输出亲朋字符串

 

参考题解:

#include <iostream>
#include <string>
#include <algorithm>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main(){cin.tie(nullptr)->sync_with_stdio(false);string s;cin >> s;char tmp = s[0];for(int i = 0;i<s.size()-1;i++){s[i] = s[i]+s[i+1];}s[s.size()-1] = s[s.size()-1]+tmp;cout << s << endl;return 0;
}

问题 H: 找子串

 

参考题解:

#include <iostream>
#include <string>
#include <algorithm>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main(){cin.tie(nullptr)->sync_with_stdio(false);string s,t;while(cin >> s >> t){if(s.find(t)==string::npos) cout << "No\n";else cout << "Yes\n";}return 0;
}

问题 I: 字符串替换

 

参考题解:

#include <iostream>
#include <string>
#include <map>
using std::cin;
using std::cout;
using std::string;
using std::map;
int main(){cin.tie(nullptr)->sync_with_stdio(false);string s,t,str;cin >> s >> t >> str;string ans = s;int pos;while((pos=ans.find(t))!=string::npos){ans.replace(pos,t.size(),str);}cout << ans << std::endl;return 0;
} 

问题 J: 字符串复制(程序填空)

 

参考题解1(你让我填空我就填空嘛?(bushi)):

#include <iostream>
#include <string>
#include <algorithm>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main(){cin.tie(nullptr)->sync_with_stdio(false);string s;getline(cin,s);int m;cin >> m;string ans = s.substr(m);cout << s << '\n' << ans << endl;return 0;
}

参考题解2(程序填空):

#include<iostream>
using namespace std;
int main()
{int m;char str1[51],str2[51];gets(str1);
//	______(1)_______cin>>m;char *p1,*p2;p1=str1+m;
//	______(2)_______p2=str2;while(*p1)*(p2++)=*(p1++);*p2='\0';puts(str1);puts(str2);
//	______(3)_______return 0;
}

问题 K: 查找子串出现次数

 

参考题解:

#include <iostream>
#include <string>
#include <algorithm>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main(){cin.tie(nullptr)->sync_with_stdio(false);string s,t;cin >> s >> t;int k = 0,ans = 0;while(s.find(t,k)!=string::npos){k = s.find(t,k)+t.size();ans++;}cout << ans << endl;return 0;
}

问题 L: 回文串游戏

 

参考题解:

#include <iostream>
#include <string>
#include <map>
using std::cin;
using std::cout;
using std::string;
using std::map;
int main(){cin.tie(nullptr)->sync_with_stdio(false);string s;cin >> s;map<char,int> mp;for(auto &c:s) mp[c]++;int ans = 0;for(auto &i:mp){if(i.second&1) ans++;}cout << (ans==0||ans&1?"First":"Second") << std::endl;return 0;
} 

问题 M: 虎哥找子串

 

参考题解:

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 3e5+5;
string s;
ll ans = 0;
void solve(){cin >> s;for(int i = 0;i<s.size();i++){if(i==0){if((s[i]^48)%4==0) ans++;}else{if((s[i]^48)%4==0){if((s[i-1]^48)%2==1) ans++;else ans+=(i+1);}else if((s[i]^48)%4==2){if((s[i-1]^48)%2==1) ans+=i;}}}cout << ans << '\n';
}
int main(){cin.tie(nullptr)->sync_with_stdio(false);int T = 1;while(T--) solve();return 0;
}

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

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

相关文章

【TensorFlow深度学习】张量比较与条件操作的应用场景

张量比较与条件操作的应用场景 1. 张量比较操作1.1 常用张量比较函数1.1.1 相等比较1.1.2 不等于比较1.1.3 大于比较 1.2 张量比较的应用场景1.2.1 数据过滤1.2.2 激活函数1.2.3 损失函数1.2.4 条件训练 2. 条件操作2.1 常用条件操作函数2.1.1 tf.cond2.1.2 tf.where 2.2 条件操…

OpenHarmony语言基础类库【@ohos.util.PlainArray (非线性容器PlainArray)】

PlainArray可用于存储具有关联关系的key-value键值对集合&#xff0c;存储元素中key值唯一&#xff0c;key值类型为number类型&#xff0c;每个key对应一个value。 PlainArray依据泛型定义&#xff0c;采用轻量级结构&#xff0c;集合中key值的查找依赖于二分查找算法&#xf…

数字电路-可预置倒计时器Multisim仿真

数字电路之于FPGA意义重大。本可预置倒计时器设计采用40106作为振荡电路&#xff0c;由74LSl92、74LS47D和七段共阴数码管构成计时电路&#xff0c;具有启动/预置、暂停/继续计时和报警功能。紫色文字是超链接&#xff0c;点击自动跳转至相关博文。持续更新&#xff0c;原创不易…

OceanBase 分布式数据库【信创/国产化】- OceanBase 与 MySql 兼容性对比

本心、输入输出、结果 文章目录 OceanBase 分布式数据库【信创/国产化】- OceanBase 与 MySql 兼容性对比前言OceanBase 数据更新架构OceanBase 与 MySql 兼容性对比OceanBase 数据类型SQL 语法过程性语言OceanBase 支持的字符集OceanBase 存储引擎OceanBase 分区支持OceanBase…

用C实现通讯录(详细讲解+源码)

前言 &#x1f4da;作者简介&#xff1a;爱编程的小马&#xff0c;正在学习C/C&#xff0c;Linux及MySQL.. &#x1f4da;以后会将数据结构收录为一个系列&#xff0c;敬请期待 ● 本期内容会给大家带来通讯录的讲解&#xff0c;主要是利用结构体来实现通讯录&#xff0c;该通讯…

[ESP32]:TFLite Micro推理CIFAR10模型

[ESP32]&#xff1a;TFLite Micro推理CIFAR10模型 模型训练 数据集处理 from keras.datasets import cifar10 from keras.preprocessing.image import ImageDataGenerator from keras.models import Sequential, load_model, Model from keras.layers import Input, Dense, …

目标检测(任务概述、机器学习时代的方法、深度学习时代的目标检测模型)

文章目录 目标检测任务概述机器学习时代的目标检测方法深度学习时代的目标检测模型基于提议的目标检测模型R-CNN 模型Fast RCNN 模型Faster RCNN 模型SSD 模型YOLO 模型 基于分割的目标检测模型FCN 模型U-Net 模型 目标检测任务概述 目标检测任务的概念&#xff1a;尝试从一张…

xLua详解

目录 环境准备xLua导入 C#调用LuaLua解析器Lua文件加载重定向Lua解析管理器全局变量的获取全局函数的获取List和Dictionary映射table类映射table接口映射tableLuaTable映射table Lua调用C#准备工作Lua使用C#类Lua调用C#枚举Lua使用C# 数组 List 字典数组List字典 Lua使用C#扩展…

解决NetworkManager覆盖/etc/resolv.conf的问题

发布时间&#xff1a;2024.4.27 问题 /etc/resolv.conf是Linux下DNS的配置文件。 但是NetworkManager会用覆盖它&#xff0c;导致我们每次都要重新配置。 解决办法 这是官方推荐的做法。或者你可以用resolveconf工具。 $ nm-connection-editor会调起一个界面&#xff0c;…

RabbitMQ通配符模式

RabbitMQ通配符模式 简介代码演示生产者消费者 简介 RabbitMQ是一个开源的消息中间件&#xff0c;在分布式系统中被广泛应用于消息的传递和处理。它支持多种工作模式&#xff0c;其中之一是通配符&#xff08;TOPIC&#xff09;模式。本文将对RabbitMQ的通配符模式进行详细的讲…

Python_AI库 matplotlib扩展知识

Python_AI库 matplotlib扩展知识 在数据分析和处理的领域里&#xff0c;可视化是一种不可或缺的手段。通过图形化的展示&#xff0c;我们可以更直观地理解数据的分布、趋势和关系。而matplotlib&#xff0c;作为Python中最为流行的数据可视化库之一&#xff0c;以其强大的功能…

【C++】简易二叉搜索树

目录 一、概念&#xff1a; 二、代码实现&#xff1a; 大致结构&#xff1a; 1、遍历&#xff1a; 2、insert 3、find 4、erase 三、总结&#xff1a; 一、概念&#xff1a; 二叉搜索树又称为二叉排序树&#xff0c;是一种具有特殊性质的二叉树&#xff0c;对于每一个节…

在虚拟环境中找到Qt Designer

Pyqt5中找到Qt Designer 安装Pyqt5和Qt Designer: pip install pyqt5-tools 假设Python的虚拟环境名为:d2l &#xff0c;虚拟环境在d2l文件夹中 D:\Software\d2l\Lib\site-packages\qt5_applications\Qt\bin 双击Qt designer启动 Pyside2中找到Qt Designer d2l是虚拟环境…

上位机图像处理和嵌入式模块部署(树莓派4b下使用sqlite3)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 嵌入式设备下面&#xff0c;有的时候也要对数据进行处理和保存。如果处理的数据不是很多&#xff0c;一般用json就可以。但是数据如果量比较大&…

rust前端web开发框架yew使用

构建完整基于 rust 的 web 应用,使用yew框架 trunk 构建、打包、发布 wasm web 应用 安装后会作为一个系统命令&#xff0c;默认有两个特性开启 rustls - 客户端与服务端通信的 tls 库update_check - 用于应用启动时启动更新检查&#xff0c;应用有更新时提示用户更新。nati…

Linux——终端

一、终端 1、终端是什么 终端最初是指终端设备&#xff08;Terminal&#xff09;&#xff0c;它是一种用户与计算机系统进行交互的硬件设备。在早期的计算机系统中&#xff0c;终端通常是一台带有键盘和显示器的电脑&#xff0c;用户通过它输入命令&#xff0c;计算机在执行命…

Swift中的单例

在Swift中实现单例模式可以通过使用静态常量或静态变量来实现。下面是一个示例&#xff1a; class Singleton {static let sharedInstance Singleton()private init() {// 这里是初始化代码}// 这里是其他实例方法和属性 }在上面的示例中&#xff0c;通过使用static let来创建…

SpringBoot引入Layui样式总是出现404

一般出现Layui样式文件如css&#xff0c;js404的错误 解决方案 &#xff08;1&#xff09;首先将其中的静态资源下载resources/static中 &#xff08;2&#xff09;在启动类中重写方法 package com.gq.booksystem;import org.mybatis.spring.annotation.MapperScan; import …

商城数据库(1-4)

1——商家认证项目表&#xff08;wang_accreds&#xff09; CREATE TABLE wang_accreds (accredId int(11) NOT NULL AUTO_INCREMENT COMMENT 自增ID,accredName varchar(50) NOT NULL COMMENT 名称,accredImg varchar(150) NOT NULL DEFAULT 0 COMMENT 图标,dataFlag tinyint…

centOS 7.9操作

名称日期版本作者centOS7.9操作2024.4.271.0lll 实验题目&#xff1a; 创建一个用户。 在创建的用户中再创建一个2024的目录。 在2024的下在创建一个 1---10的目录&#xff0c;再创建一个a--z.txt的文件。 在创建一个2024bak的目录。 再将当前用户的所有文件备份到2024ba…