蓝桥杯刷题——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…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
学习一下用鸿蒙DevEco Studio HarmonyOS5实现百度地图
在鸿蒙(HarmonyOS5)中集成百度地图,可以通过以下步骤和技术方案实现。结合鸿蒙的分布式能力和百度地图的API,可以构建跨设备的定位、导航和地图展示功能。 1. 鸿蒙环境准备 开发工具:下载安装 De…...
Linux部署私有文件管理系统MinIO
最近需要用到一个文件管理服务,但是又不想花钱,所以就想着自己搭建一个,刚好我们用的一个开源框架已经集成了MinIO,所以就选了这个 我这边对文件服务性能要求不是太高,单机版就可以 安装非常简单,几个命令就…...
k8s从入门到放弃之HPA控制器
k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率(或其他自定义指标)来调整这些对象的规模,从而帮助应用程序在负…...
Python网页自动化Selenium中文文档
1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API,让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API,你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...
区块链技术概述
区块链技术是一种去中心化、分布式账本技术,通过密码学、共识机制和智能合约等核心组件,实现数据不可篡改、透明可追溯的系统。 一、核心技术 1. 去中心化 特点:数据存储在网络中的多个节点(计算机),而非…...
人工智能 - 在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型
在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型。这些平台各有侧重,适用场景差异显著。下面我将从核心功能定位、典型应用场景、真实体验痛点、选型决策关键点进行拆解,并提供具体场景下的推荐方案。 一、核心功能定位速览 平台核心定位技术栈亮…...
