经典中的经典之字符串

前言:前段时间发烧了,所以耽误了很多事情,一直没有更新,多穿点衣服,感冒不好受。

接下来有时间就会陆续更新一些基础的算法题,题目都很经典,大家可以先尝试着做,再看

解析。

第一题:

392f380ff293499889efc6ec0c065828.png03698de334e84bb9960690587ea240c1.png

 

思路:先来审题,对于这种题目很长的题更应该耐着性子来读,把大意读懂,接着一步步模拟,明确优先顺序,那一步做什么判断,做之前可以先写一下思路,再来上手实操。

这道题看起来抽象,其实确实抽象,一般的人做不出,除非你是二班的人,我改代码都改了有两个小时。首先你应该判断你输入的字符串是否展开,不展开的话又分两种,一种是右边字符是左边的后继,,那么删除减号输出;第二种,如果右边比左边ascII小,那么保留减号直接输出。如果展开的话,先判断是正序还是逆序,同时你又要判断是否;'-'两边的字符是否都是数字还是都是字母,是的话才能继续展开,否则不展开。然后展开的话循环的左边界就是左字符加一,到右边界-1,同时右边界取不到,接着又要更具p2输出循环输出字符的次数,在循环内部根据p1的取值输出大小写,这里我定义了一个数组,将字符填进数组,方便后续的逆序输出。最后这里面还有很多细节,大家可以思考,比方说数组越界,逆序输出等等..

2fc769dc02c74d52b3b9e8d3157ffab5.png

 

第二题:

7357de01192746fbb7651f3896dd4e20.png

 

思路:注意到要输出的是单词,我们可以定义三个数组,分别是作为中间变量的,最长和最短字符串,如果中间变量大于最长就更新长度和单词。接着就是具体,可以用ch=getchar(),如果读到\n或者eof退出,碰到分隔符来判断,没碰到就把这个字符填进去中间变量字符串

31c78105380249e3a85423143409f306.png

第三题:

cd173ffa1a474103844657dc2d2b67b4.png思路:就是对着葫芦画瓢。要判断新的字符串,你就得先定义两个新的字符串,然后在给定的边界中遍历,将它添加进新的字符串,然后来比较即可

ba84c33648884a6dbd2d0d225c4022ce.png第四题:

9a15ee2f73aa453ab8b6d3e2bc84c952.png思路:这个题看起来简单,其实也要好好想一想。这里你可以这么想先定义个数组cnt[26]来计数等下出现字符串的时候减去’a'表示字母所在的位置,循环遍历字符串的时候,出现一次就计数一次,然后重新遍历数组,再判断输出

7a042112822c4ed18d2020fa46cb7161.png

第五题:

c433bdb55af14462a72db797055bbdce.png

思路:依葫芦画瓢。注意判断一下,最后一个字符是加上第一个字符,然后输出即可

5ab96541daf24d55aa63935d02459bf3.png

第六题:

39e13c3e8931470e8ea674dcce81305d.png

思路:

题意很简单,就是把数字字符的个数统计一下,然后输出个数和字符,那么肯定要定义计数器cnt

然后判断相邻两个字符是不是相同,相同cnt++不相同就输出,值得注意的是,要判断相邻两个,那么就要从1开始遍历,从0的话就越界了。最后还要再输出一遍,原因就是如果最后几个是相同的数字字符,循环里面就不会把他输出,举个例子最后几个数字是222,他的cnt一直加到3,就退出循环了,所以最后再输出一次。

第七题:

e2037f358fd94557bae1182901a387b2.png

思路:既然要统计键盘总次数,就要根据你输入的字符串的每一个字母来确定,所以你得将输入按动一次,二次,三次,四次出现的字符存入一个数组,并把字符作为下标因为你遍历的字符串是字母,把数值当作数组的值,最后就和即可。

ef4765d893c84842b8979a7bf0341371.png第八题:

29d95ad01e654a4aac256b1781955ea4.png

 

思路:这个题看起来很抽象,但是题意很好懂,就是先定义二维数组,接着输出,如果是地雷输出*不是地雷判断这个位置的八个方位有多少个地雷加起来,输出。这里介绍两种方法,一种就是用方向数组来优化代码,另外一种就是用常规if判断

efb9798f354e46a0bbb0f9d5e9273d8c.png在这里面,d[x]表示横行移动d[y]表示纵向移动,例如当d[1+dx[0]][1+[dy[0]]就表示d[2][0],就是向左移动一格判断。如果用八个if来判断的话就是,把else里面的语句更改为

942ed99004fc448b812480b8395bcca2.png

第九题:

b112d03519c54acab686814c105f654c.png

第十题:

61056ed2a9f741efb8fbb78c90994192.png

思路:这个题没什么说的,字符串中有空格,所以读取的时候用getline,然后分别统计即可

ed23600241a74ec9a78d43a529f4e912.png

第十一题:

c732ebcaba2547a3a89d06654548752f.png思路:

需要找vk,同时,你能更改一个字母,那么你可以这样,先找到所以出现的vk然后将他更改为其他的字符,计数器++,方便下一次改字符的时候计数,然后你就要找vv或者vk,要考虑全面找到vv的话改后一个v,找到kk 的话改第一个k,找到就break;最后输出即可。

68283dfb06064847a6c61ff132bbcffa.png

第十二题:

3451d40877a64d87bed53519ea5a645c.png

 

思路:

这个题的题意其实有点抽象,不太好理解,我整这道题也整了好久。

注意他问的是字符串中有多少个boy和girl包括被覆盖的,先从这个输入输出来看,为什么boy是4,因为,一个眼睛可见的boy,还有一个o,说明什么?说明o左右两边的b 和y都被覆盖了,后面的yy同理。想到这里,你肯定还是懵。你就要统计次数了,那么统计什么呢,比方说出现一个b那么你计数器是不是要++,出现o计数器++,出现y,计数器也++,但是里面必然会有重复的,比方说你先是统计b,出现b就计数器++的话,包括boy,bo,出现o包括bo,oy,是不是发现bo重复统计了,y也是同理,所以为了避免重复,你只需在当出现o的时候加一个条件,就是不能出现b,同理出现y的时候不能出现b和o,再来计数,这样就避免了重复。

8474c7d9a24c4a12ac339d0c40f0da7d.png第十三题:

1b2470cee8364ad682a747913903d60a.png思路:

题目看似抽象,实则确实抽象。要理解题意。具体来做的话好像的就是打表格。

把所有的英文数字单词计入一个数组,所对应数字的平方%11的值,再放到一个数组,如何循环六次,每一次输入一个单词,判断是不是数字单词,是的话就把对应数字平方%11的值赋给一个新的数组,存起来。最后排序一下输出。并且如果排完之后的数字不是第一位的话,如果数值比10小前面的0,不能省略,所以,这里还要用if判断一下,再来输出。

f2e7581cf3c142c99425bbd76ca8c259.png

总共13题,到此结束,感谢你的阅读,与君共勉!

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

7.HTML中列表标签

7.列表标签 7.1无序列表(重点) 表格是用来显示数据的,那么列表就是用来布局的。 列表最大的特点就是整齐,整洁,有序,他作为布局会更加自由和方便, 根据使用的情景不同,列表可分为三…

改进YOLOv5 | C3模块改动篇 | 轻量化设计 |骨干引入动态卷积|CondConv

🗝️YOLOv5实战宝典--星级指南:从入门到精通,您不可错过的技巧   -- 聚焦于YOLO的 最新版本, 对颈部网络改进、添加局部注意力、增加检测头部,实测涨点 💡 深入浅出YOLOv5:我的专业笔记与技术总结   -- YOLOv5轻松上手, 适用技术小白,文章代码齐全,仅需 …

2017年全国硕士研究生入学统一考试管理类专业学位联考数学试题——解析版

文章目录 2017 级考研管理类联考数学真题解析一、问题求解(本大题共 5 小题,每小题 3 分,共 45 分)下列每题给出 5 个选项中,只有一个是符合要求的,请在答题卡上将所选择的字母涂黑。真题(2017-…

基于Qt的UDP通信、TCP文件传输程序的设计与实现——QQ聊天群聊

🙌秋名山码民的主页 😂oi退役选手,Java、大数据、单片机、IoT均有所涉猎,热爱技术,技术无罪 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 获取源码,添加WX 目录 前言一…

词向量笔记

一、词向量的世界排名比赛MTEB MTEB: Massive Text Embedding Benchmark 二、词向量的维数 词向量的维数d1一般取20~500之间

数据结构与算法编程题11

已知两个链表A和B分别表示两个集合&#xff0c;其元素递增排列。 请设计算法求出A与B的交集&#xff0c;并存放于A链表中。 a: 1, 2, 2, 4, 5, 7, 8, 9, 10 b: 1, 2, 3, 6, 7, 8 #include <iostream> using namespace std;typedef int Elemtype; #define ERROR 0; #defin…

基于鹈鹕算法优化概率神经网络PNN的分类预测 - 附代码

基于鹈鹕算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于鹈鹕算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于鹈鹕优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神经网络的光滑…

Linux文件

目录 一、基本概念 二、研究进程和被打开文件的关系 &#xff08;一&#xff09;w方式 &#xff08;二&#xff09;a方式 三、认识系统接口&#xff0c;操作文件 &#xff08;一&#xff09;认识文件描述符 &#xff08;二&#xff09;举例 &#xff08;三&#xff09;…

分类预测 | Matlab实现基于PSO-PNN粒子群算法优化概率神经网络的数据分类预测

分类预测 | Matlab实现基于PSO-PNN粒子群算法优化概率神经网络的数据分类预测 目录 分类预测 | Matlab实现基于PSO-PNN粒子群算法优化概率神经网络的数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现基于PSO-PNN粒子群算法优化概率神经网络的数据…

基于材料生成算法优化概率神经网络PNN的分类预测 - 附代码

基于材料生成算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于材料生成算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于材料生成优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神…

Java基础(程序控制结构篇)

Java的程序控制结构与C语言一致&#xff0c;分为顺序结构、选择结构&#xff08;分支结构&#xff09;和循环结构三种。 一、顺序结构 如果程序不包含选择结构或是循环结构&#xff0c;那么程序中的语句就是顺序的逐条执行&#xff0c;这就是顺序结构。 import java.util.Sc…

linux之进程地址空间

文章目录 1.进程地址空间回顾1.1进程地址空间划分1.2验证进程地址空间划分1.简单划分2.完整划分 2.初探进程地址空间2.1初看现象2.2Makefile的简便写法 3.进程地址空间详解3.1地址空间是什么?3.2地址空间的设计/由来3.3空间区域划分3.4如何理解地址空间?3.5解释3.2的&#x1…

在中国企业出海的大浪潮下,亚马逊云科技提供遍及全球的基础设施和技术支持

中国技术出海是中国企业更高层次更高质量的全球化。在人类文明发展史上&#xff0c;凝聚中国古人智慧结晶的造纸术、印刷术、火药、指南针等&#xff0c;曾为中国技术出海写下过浓墨重彩的一笔。在今天&#xff0c;如金山办公、店匠科技、ADVANCE.AI等公司又以技术立业&#xf…

最受欢迎的猫罐头有那些?精选的5款热门猫罐头推荐!

新手养猫很容易陷入疯狂购买的模式&#xff0c;但有些品牌真的不能乱买&#xff01;现在的大环境不太好&#xff0c;我们需要学会控制自己的消费欲望&#xff0c;把钱花在刀刃上&#xff01;现在宠物市场真的很内卷&#xff0c;很多品牌都在比拼产品的数据和营养成分。很多铲屎…

如何查找批量企业的联系方式?

​我们都知道&#xff0c;企业的联系方式在企业的年报中就能找到&#xff0c;但是年报上的电话真的是你要找的吗&#xff1f; 很多企业年报上留的是第三方代记账公司&#xff0c;或者是其他没用的号码&#xff0c;这对于做B端业务的企业来说是不够精准的。 市面上有很多做企业…

redis运维(十六) 有序集合

一 有序集合 把握一点&#xff1a; 各种redis 命令都提供各种语言对应的API 接口,后续API是关键 ① 概念 1、sorted set --> 有序集合2、redis有序集合也是集合类型的一部分&#xff0c;所以它保留了集合中元素不能重复的特性3、但是不同的是,有序集合给每个元素多设置…

[Docker]九.Docker compose讲解

docker-compose 是 docker 官方的一个开源项目&#xff0c;可以实现对 docker 容器集群的快速编排, docker-compose 通过一个 配置文件 来管理多个 Docker 容器,在配置文件中&#xff0c;所有的容器通过 services 来定义&#xff0c;然后使用 docker-compose脚本 来 启动&am…

10、信息打点——APP小程序篇抓包封包XP框架反编译资产提取

APP信息搜集思路 外在——抓包封包——资产安全测试 抓包&#xff08;Fiddle&茶杯&burp&#xff09;封包&#xff08;封包监听工具&#xff09;&#xff0c;提取资源信息 资产收集——资源提取——ICO、MAD、hash——FOFA等网络测绘进行资产搜集 外在——功能逻辑 内在…

pikachu靶场PHP反序列化漏洞

pikachu靶场PHP反序列化漏洞 源码分析 查看源代码 class S{var $test "pikachu";function __construct(){echo $this->test;} }// O:1:"S":1:{s:4:"test";s:29:"<script>alert(xss)</script>";} $html; if(isset($_PO…

pikachu_php反序列化

pikachu_php反序列化 源代码 class S{var $test "pikachu";function __construct(){echo $this->test;} }//O:1:"S":1:{s:4:"test";s:29:"<script>alert(xss)</script>";} $html; if(isset($_POST[o])){$s $_POST[…