经典中的经典之字符串

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

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

解析。

第一题:

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

思路:这个题很简单,因为字符串有空格,所以用getline,然后稍微判断一下即可

第十题:

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题,到此结束,感谢你的阅读,与君共勉!

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

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

相关文章

Windows常用cmd网络命令详解

中午好,我的网工朋友。 上回给你们梳理了一些有趣的cmd命令,很多朋友希望再拓展一下,这不就来了? 今天从windows切入,给你分享一些常用cmd网络命令,如果能熟悉上手,很多功能都可以快速实现&am…

Java Class 类文件格式看这一篇就够了

本文将揭开Java Class文件的神秘面纱,带你了解Class文件的内部结构,并从Class文件结构的视角告诉你: 为什么Java Class字节码文件可以“写一次,遍地跑”?为什么常量池的计数从1开始,而不是和java等绝大多数…

【JVM精讲与GC调优教程(概述)】

如何理解虚拟机(JVM)跨语言的平台 java虚拟机根本不关心运行在其内部的程序到底是使用何种编程语言编写的,他只关心“字节码”文件。 java不是最强大的语言,但是JVN是最强大的虚拟机。 不存在内存溢出? 内存泄露? JAVA = (C++)–; 垃圾回收机制为我们打理了很多繁琐的…

【人工智能入门学习资料福利】

总目录如下(部分截取): 百度网盘链接:https://pan.baidu.com/s/1bfDVG-xcPR3f3nfBJXxqQQ?pwdifu6 提取码: ifu6

B站已经部分上线前台实名,如不同意实名,后期账号流量将收影响!

B站部分百万粉丝博主的主页显示账号运营人名字的政策是从10月31日开始的。当天,B站官方发布了《哔哩哔哩关于头部“自媒体”账号前台实名的公告》,表明了其前台实名制的实施计划。 B站部分上线前台实名的过程可以追溯到2021年。当时,中国政府…

SQL语句执行过程

一条 SQL 的执行过程可以大致分为以下几个步骤: 连接器: ○ 客户端与数据库建立连接,并发送 SQL 语句给数据库服务。 ○ 连接器验证客户端的身份和权限,确保用户有足够的权限执行该 SQL 语句。查询缓存: ○ 连接器首先…

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

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

Motion v5.6.7 苹果电脑上的视频编辑

Motion mac是一款运行在苹果电脑上的视频编辑软件,它能让您自定Final Cut Pro字幕、转场和效果。 它可以在2D或3D空间中创建您自己的精美炫目的动画,同时还能在您工作时提供实时反馈。广色域支持让你的动态图形更显出色光彩。3D文字功能经过优化增强&am…

01背包与完全背包学习总结

背包问题分类见下图 参考学习点击:代码随想录01背包讲解 01背包问题: 核心思路: 1、先遍历物品个数,再遍历背包容量。因为容量最先是最大的,往背包里放物品,所以背包容量在慢慢减少,但背包容量…

上海泗博MODBUS转PROFINET网关TS-180 网关连接LED显示屏应用案例

项目 常州某钢铁公司的轧钢车间为了更清晰地显示当天轧钢系统各环节的工作参数,如轧钢的日期、钢种、吐丝机设备运行情况等,引进了另一家为其定制的LED显示屏。轧钢系统各环节的设备参数通过西门子S7-1500PLC采集后,实时显示在LED显示屏上&am…

飞瓜数据B站丨B站UP主11月第3周榜单排行榜榜单(B站平台)发布!

飞瓜轻数发布2023年11月13日-11月19日飞瓜数据UP主排行榜(B站平台),通过充电数、涨粉数、成长指数、带货数据等维度来体现UP主账号成长的情况,为用户提供B站号综合价值的数据参考,根据UP主成长情况用户能够快速找到运营…

Linux网络——传输层

目录 一.再谈端口概念 二.UDP协议 1.UDP协议格式 2.UDP的特点 3.面向数据报 4.UDP的缓冲区 5.UDP使用注意事项 6.UDP协议在内核中的表现形式 7.基于UDP的应用层协议 三.TCP协议 1.TCP协议格式 2.TCP确认应答机制 3.超时重传机制 4.TCP报文六位标志位 5.滑动窗口 6…

Flutter开发实践:用一套代码构建多端精美应用

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师…

Python下使用requests库遇到的问题及解决方案

每一盏灯都有一个故事……当凌晨2点我的房间灯还亮着时,那就是我与BUG的一场生死博弈。一个人静静地坐在电脑前不断地写代码,感觉快要麻木了,好比闭关修炼一样枯燥无味。最终当我打通任督二脉后,bug修复迎来的一片曙光。 一、问题…

clang+llvm多进程gdb调试

clangllvm多进程gdb调试 前言1. 命令行gdb2. 父进程调试3. 子进程调试4. 返回父进程 前言 在学习新增llvm的优化pass时,需要跟踪clang及llvm的调用栈。然而llvm通过posix_spawn()创建了新进程,这使得gdb调试必须有一定的技巧了。 1. 命令行gdb 以下命…

函数式编程-Stream流笔记-三更草堂

函数式编程-Stream流 1. 概述 1.1 为什么学&#xff1f; 能够看懂公司里的代码 大数量下处理集合效率高 代码可读性高 消灭嵌套地狱 //查询未成年作家的评分在70以上的书籍 由于数据中作家和书籍可能出现重复&#xff0c;需要进行去重 List<Book> bookList new Ar…

4G5G智能执法记录仪在保险公司车辆保险远程定损中的应用

4G智能执法记录仪&#xff1a;汽车保险定损的**利器 随着科技的不断进步&#xff0c;越来越多的智能设备应用到日常生活中。而在车辆保险定损领域&#xff0c;4G智能执法记录仪的出现无疑是一大**。它不仅可以实现远程定损&#xff0c;还能实现可视化操作、打印保单以及数据融…

给定一个非严格递增排列的有序数组,删除数组中的重复项

实例要求&#xff1a;1、给定一个非严格递增排列的有序数组 nums &#xff1b;2、原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff1b;3、返回删除后数组的新长度&#xff1b;4、元素的 相对顺序 应该保持 一致 &#xff1b;5、然后返回 nums 中唯一元素的…

dolphinscheduler有任务一直在运行(问题)目前对数据库解决

dolphinscheduler有任务一直在运行&#xff08;问题&#xff09;目前对数据库解决 危害&#xff1a; 这么多的任务没有结束&#xff0c;会涉及很多问题的&#xff0c;系统的数据盘会不断入职日志&#xff0c;数据量很大&#xff0c; 其实对于dolphinscheduler的性能是下降的&a…

WMware虚拟机与主机互相共享文件安装VMware Tools灰色无法点击安装解决方案

一、背景 虚拟机与主机互传文件最简单的方法&#xff0c;就是给虚拟机系统安装VMware Tools。 安装VMware Tools后虚拟机系统和主机的文件可以相互拖拽&#xff0c;文字也可以任意粘贴复制。 二、遇到的问题 使用VMware时&#xff0c;安装VMware Tools或者重新安装VMware To…