蓝桥杯刷题——day1
蓝桥杯刷题——day1
- 题目一
- 题干
- 题目解析
- 代码
- 题目二
- 题干
- 题目解析
- 代码
题目一
题干
给定一个字符串 s ,验证 s 是否是 回文串 ,只考虑字母和数字字符,可以忽略字母的大小写。本题中,将空字符串定义为有效的 回文串 。
题目链接:验证回文串
示例 1:
输入: s = “A man, a plan, a canal: Panama”
输出: true
解释:“amanaplanacanalpanama” 是回文串
示例 2:
输入: s = “race a car”
输出: false
解释:“raceacar” 不是回文串
题目解析
这条题目是一个基础题,我们可以设置两个指针,left和right,分别指向字符串的起点和终点,两指针同时向中间运动,如果left指向的不是字符或者数字,那么left++,如果right指向的不是字符或者数字,那么right–,如果两者指向的是字符或者数字那么进一步判断,如果两者指向的字符相同,那么left++,并且right–;如果指向的不同,但是只是大小写的区别,那么left++,并且right–;否则的话跳出循环,这条题目并没有什么难度,其实考察的只是循环的嵌套,下面是完整代码:
代码
class Solution {public boolean isPalindrome(String s) {char[] array = s.toCharArray();int left = 0;int right = array.length - 1;while(left < right){if(((array[left] <= 57 && array[left] >= 48) || (array[left] >= 65 && array[left] <= 90) || (array[left] <= 122 && array[left] >= 97))&& ((array[right] <= 57 && array[right] >= 48) ||(array[right] >= 65 && array[right] <= 90) || (array[right] <= 122 && array[right] >= 97))){if(array[left] == array[right]){right--;left++;}else {if(array[left] > 57 && array[right] >57 && Math.abs(array[left] - array[right]) == 32){right--;left++;}else {break;}}}else if((array[left] <= 57 && array[left] >= 48) || (array[left] >= 65 && array[left] <= 90) || (array[left] <= 122 && array[left] >= 97)){right--;}else if((array[right] <= 57 && array[right] >= 48) ||(array[right] >= 65 && array[right] <= 90) || (array[right] <= 122 && array[right] >= 97)){left++;}else {right--;left++;}}if(left < right){return false;}else {return true;}}
}
这里要说一下,这条题目还考察了Ascii码表,其他的可以不用记忆,但是这三个关键的是最好要记下来的:
| 字符 | Ascii值 |
|---|---|
| 0 | 48 |
| A | 65 |
| a | 97 |
下面附上一张完整的Ascii表:

题目二
题干
给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。如图所示:

题目链接:杨辉三角
示例一:
输入: numRows = 5
输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
示例二:
输入: numRows = 1
输出: [[1]]
题目解析
这条题目相对难一点,但是理解其中的计算过程也就不那么难了,首先我们可以看到,每行的第一个数和最后一个数都是1,因此我们在考虑每行计算的时候先把这个考虑进去,其次除了每行的第一个数字和最后一个数字,中间的数字都满足以下的计算方式(i表示第i行,j表示第j个数):
f(i,j)=f(i-1,j-1) + f(i-1,j)
例如f(5,2)(第5行,第2个数)为4,他就是由f(4,1)+f(4,2)得到的,因此我们就完成了杨辉三角的代码了,下面是完整的代码:
代码
import java.util.*;
class Solution {public List<List<Integer>> generate(int numRows) {List<List<Integer>> lists = new ArrayList<>();for(int i = 1;i <= numRows;i++){List<Integer> list = new ArrayList<>();for(int j = 1;j <= i;j++){ //4,2 3,1 + 3,2if(j == 1 || j == i){list.add(1);}else {List<Integer> tmplist = lists.get(i-2);int first = tmplist.get(j-2);int second = tmplist.get(j-1);list.add(first+second);}}lists.add(list);}return lists;}
}
有细心的同学发现,我的计算方法好像是f(i-2,j-2) + f(i-2,j-1),这是因为我的i和j是从1开始的,而lists和list都是数组,他们使用get方法拿数据,下标都是从0开始的,因此我需要对应的多减去一个1。好了,今天的蓝桥刷题就到这里,如果对你有所帮助,别忘了点赞和收藏,谢谢各位!当然有问题也欢迎各位评论或者私信!
相关文章:
蓝桥杯刷题——day1
蓝桥杯刷题——day1 题目一题干题目解析代码 题目二题干题目解析代码 题目一 题干 给定一个字符串 s ,验证 s 是否是 回文串 ,只考虑字母和数字字符,可以忽略字母的大小写。本题中,将空字符串定义为有效的 回文串 。 题目链接&a…...
Leetcode 面试150题 399.除法求值
系列博客目录 文章目录 系列博客目录题目思路代码 题目 链接 思路 广度优先搜索 我们可以将整个问题建模成一张图:给定图中的一些点(点即变量),以及某些边的权值(权值即两个变量的比值),试…...
活动预告 |【Part2】Microsoft 安全在线技术公开课:安全性、合规性和身份基础知识
课程介绍 通过参加“Microsoft 安全在线技术公开课:安全性、合规性和身份基础知识”活动提升你的技能。在本次免费的介绍性活动中,你将获得所需的安全技能和培训,以创造影响力并利用机会推动职业发展。你将了解安全性、合规性和身份的基础知…...
Unity游戏实战
很小的时候在键盘机上玩过一个游戏叫寻秦,最近看有大佬把他的安卓版做出来了,打开封面就是Unity,想自己也尝试一下。...
SQL中的替换函数replace() 使用
这条 SQL 语句的作用是将 tool_tool 表中所有 link 字段包含 https://www.xxspvip.cn 的记录中的 https://www.xxspvip.cn 替换为 http://192.168.1.1。具体解释如下: SQL 语句分解 UPDATE tool_toolSET link REPLACE(link, https://www.xxspvip.cn, http://192.…...
Python面试常见问题及答案5
一、基础语法相关 问题1: Python的可变数据类型和不可变数据类型有哪些? 答案: 在Python中,可变数据类型有列表(list)、字典(dict)、集合(set)。这些数据类型…...
(css)element中el-select下拉框整体样式修改
(css)element中el-select下拉框整体样式修改 重点代码(颜色可行修改) // 修改input默认值颜色 兼容其它主流浏览器 /deep/ input::-webkit-input-placeholder {color: rgba(255, 255, 255, 0.50); } /deep/ input::-moz-input-placeholder {color: rgba…...
点击按钮打开dialog嵌套表格checked数据关闭dialog回显checked数据
介绍:点击按钮打开dialog嵌套表格,勾选数据,点击确认关闭弹窗并且回显选中得数据,回显的数据被删除,dialog里面的数据也被取消勾选,废话不多说 上代码!!! 这里的勾选回显…...
《拉依达的嵌入式\驱动面试宝典》—C/CPP基础篇(三)
《拉依达的嵌入式\驱动面试宝典》—C/CPP基础篇(三) 你好,我是拉依达。 感谢所有阅读关注我的同学支持,目前博客累计阅读 27w,关注1.5w人。其中博客《最全Linux驱动开发全流程详细解析(持续更新)-CSDN博客》已经是 Linux驱动 相关内容搜索的推荐首位,感谢大家支持。 《拉…...
大模型呼出机器人有哪些优势和劣势?
大模型呼出机器人有哪些优势和劣势? 原作者:开源呼叫中心FreeIPCC,其Github:https://github.com/lihaiya/freeipcc 大模型呼出机器人在实际应用中展现出了一系列优势和劣势,以下是对其优势和劣势的详细分析ÿ…...
Python鼠标轨迹算法(游戏防检测)
一.简介 鼠标轨迹算法是一种模拟人类鼠标操作的程序,它能够模拟出自然而真实的鼠标移动路径。 鼠标轨迹算法的底层实现采用C/C语言,原因在于C/C提供了高性能的执行能力和直接访问操作系统底层资源的能力。 鼠标轨迹算法具有以下优势: 模拟…...
安宝特分享 | AR技术助力医院总院与分院间的远程面诊
随着科技的迅猛发展,增强现实(AR)技术在各行各业的应用愈发广泛,特别是在医疗领域,其潜力和价值正在被不断挖掘。在现代医疗环境中,患者常常面临“看病难、看病远、看病急”等诸多挑战,而安宝特…...
css中的字体单位
绝对长度单位 这些单位表示固定的物理尺寸,不会根据其他因素变化。 cm:厘米mm:毫米in:英寸(1in 96px 2.54cm)px:像素(最常用的绝对单位,在屏幕上的表现取决于设备的分…...
如何使用程序查询域名whois信息?(带PHP/C#示例)
直接使用TCP协议向WHOIS服务器的43端口发送查询请求即可返回WHOIS信息。 一些国际域名(.COM/.NET/.CC等)需要继续向各注册商的WHOIS服务服务发送查询请求来获取详细信息。 大部分New gTLD来说,服务器是“whois.nic.[后缀]”,例如.red的WHOIS服务器为whoi…...
在C#中编程绘制和移动线段
这个示例允许用户绘制和移动线段。它允许您根据鼠标下方的内容执行三种不同的操作。 当鼠标位于某个线段上时,光标会变成手的形状。然后您可以单击并拖动来移动该线段。当鼠标位于线段的终点上时,光标会变成箭头。然后您可以单击并拖动以移动终点。当鼠…...
web自动化测试框架playwright
一、背景:UI自动化的痛点: 1、设计脚本耗时: 需要思考要如何模拟用户的操作,如何触发页面的事件,还要思考如何设计脚本,定位和操作要交互的元素、路径、位置,再编写代码逻辑,往复循…...
【报错记录】Ubuntu22.04解决开机卡在 /dev/sda5 : clean , *files , *blocks
一个愿意伫立在巨人肩膀上的农民...... 一、错误现象 本人的电脑安装Windows10和Ubuntu22.04双系统,一次训练中电脑死机无法开机,重启之后便出现如下错误,在网上寻找过很多方法均无效,在root下禁用了samba服务,也无济…...
【AIGC】如何高效使用ChatGPT挖掘AI最大潜能?26个Prompt提问秘诀帮你提升300%效率的!
还记得第一次使用ChatGPT时,那种既兴奋又困惑的心情吗?我是从一个对AI一知半解的普通用户,逐步成长为现在的“ChatGPT大神”。这一过程并非一蹴而就,而是通过不断的探索和实践,掌握了一系列高效使用的技巧。今天&#…...
免费生成AI PPT产品推荐?
要完全免费几乎是没有的,要知道AI还是非常烧钱的。 不过免费蹭还是有很多方法的,这里收集了一些: 下面分享我自己免费蹭过的几款AI制作PPT的工具。 1 金山-WPS PPT对我们来说并不陌生,而微软的PowerPoint与金山的WPS也是我们最常…...
ubuntu22.04 使用crash
文章目录 前言一、apt 安装dbgsym vnlinux二、使用.ddeb包安装dbgsym vnlinux三、dbgsym发行版四、crash调试参考资料 前言 最近在适配 ubuntu系统,记录一下其crash的安装。 一、apt 安装dbgsym vnlinux # echo "deb http://ddebs.ubuntu.com $(lsb_release…...
YOLO X Layout在新闻行业的应用:版面自动排版
YOLO X Layout在新闻行业的应用:版面自动排版 每天清晨,当大多数人还在睡梦中时,新闻编辑部的排版编辑已经开始了一天中最紧张的工作:将记者们连夜赶制的稿件、摄影师捕捉的精彩瞬间、设计师制作的图表,精准地排列在有…...
HP 现在可以零成本构建原生 iOS 和 Android 应用 NativePHP for Mobile v3 发布
插件化架构 v3 版本最大的变化是引入了模块化插件系统。此前版本中集成在核心包里的原生功能,现在被拆分成独立的插件。 每个插件都是一个独立的 Composer 包,包含 Swift 和 Kotlin 代码、权限清单以及原生依赖。开发者只需安装实际用到的插件…...
硬件工程师的福音:用Beyond Compare 4表格比对功能,5分钟搞定BOM清单版本差异检查
硬件工程师的效率革命:Beyond Compare 4表格比对功能深度解析 在硬件研发的日常工作中,BOM清单的版本管理往往是最令人头疼的环节之一。每次PCB设计的小版本迭代——无论是物料替换、数量调整还是参数优化——都需要工程师花费大量时间核对变更细节。传统…...
OpenClaw内容审核:Qwen3.5-9B-AWQ-4bit实现图片敏感内容过滤
OpenClaw内容审核:Qwen3.5-9B-AWQ-4bit实现图片敏感内容过滤 1. 为什么需要轻量级内容审核方案 作为一个运营过多个UGC平台的技术人,我深知内容审核的痛点。早期我用过商业审核API,但面临三个问题:一是成本高,每千张…...
基于Matlab的多自由度轴承静刚度计算之旅
基于Matlab的多自由度轴承静刚度计算 因分析静态下刚度结果,仅考虑重力作用,未考虑离心力的作用 深沟球轴承和圆锥轴承基本参数包括滚珠数量、滚珠直径、中称直径、曲率和材料参数 程序已调通,可直接运行在机械工程领域,深入了解轴…...
从配准到生成:扩散模型如何革新医学图像跨模态转换
1. 医学图像跨模态转换的技术挑战 医学影像领域长期面临一个核心难题:如何在不同成像模态之间实现高精度转换。比如将核磁共振(MRI)的软组织图像转换为计算机断层扫描(CT)的骨骼结构图像,这种需求在放射治…...
新手零基础入门:利用快马平台交互式学习Python库安装与初体验
作为一个刚接触Python数据分析的小白,第一次听说pandas库时既兴奋又忐忑。兴奋的是这个工具能帮我处理数据,忐忑的是连安装都怕搞砸。好在发现了InsCode(快马)平台,它把复杂的安装过程变成了可以直接运行的交互式教程,下面分享我的…...
WLAN——从零到一:深度解析CAPWAP隧道建立与AP上线全流程
1. 初识CAPWAP:无线网络的隐形桥梁 第一次接触CAPWAP协议时,我盯着拓扑图上AP和AC之间的虚线发愣——这条看似简单的连接线背后,竟然藏着无线网络最精妙的控制逻辑。CAPWAP(Control And Provisioning of Wireless Access Points P…...
Hermes性能优化:如何提高邮件生成速度和降低资源消耗
Hermes性能优化:如何提高邮件生成速度和降低资源消耗 【免费下载链接】hermes Golang package that generates clean, responsive HTML e-mails for sending transactional mail 项目地址: https://gitcode.com/gh_mirrors/he/hermes Hermes是一个Golang包&a…...
系统级音频均衡器如何提升macOS音质:开源eqMac完全指南
系统级音频均衡器如何提升macOS音质:开源eqMac完全指南 【免费下载链接】eqMac macOS System-wide Audio Equalizer & Volume Mixer 🎧 项目地址: https://gitcode.com/gh_mirrors/eq/eqMac eqMac是一款开源的macOS系统级音频均衡器与音量混合…...
