javaScript蓝桥杯----回文字符串

news2024/11/29 10:42:51

目录

  • 一、介绍
  • 二、准备
  • 三、目标
  • 四、代码
  • 五、完成


一、介绍

有言曰:“回文诗,回复读之,皆歌而成文也”。回文诗,是使用词序回环往复的方式所成的诗,通俗来讲就是正读或者倒读都能成为诗句。历经数代诗人的创新,现有的回文诗种类之多,形态各异,颇为有趣。

在 JavaScript 中,回文诗也可以称之为回文字符串,是指正读和倒读的结果一样的字符串,从结构上来看,两侧的字符呈中心对称。

形如 aba,abba 的字符串都是回文字符串。另外,单字符串、空字符串也是一种特殊的回文字符串哦。

二、准备

本题已经内置了初始代码,打开实验环境,目录结构如下:

├── isPalindromeStr.js
└── test.js

其中:

  • isPalindromeStr.js 是待补充的 js 文件。
  • test.js 是用于测试的 js 文件。

三、目标

补充文件 isPalindromeStr.js 中的 isPalindromeStr 回文字符串检测工具函数,使其实现我们需要的功能:

  • 对输入参数的类型做校验,保证只正常处理字符串类型参数。
  • 如果所输入的字符串(包括单字符串和空字符串)是回文字符串,则返回 true。
  • 其他的情况一律返回 false。
  • 通过如下的所有参考测试用例。

请保证实现的工具函数满足所有测试用例。打开 VS Code 终端,并输入:

node ./test.js

如果你的结果正确,将不会有任何输出。否则终端将会输出类似如下内容:
在这里插入图片描述

四、代码

test.js

const isPalindromeStr = require("./isPalindromeStr");

function shouldReturnTrue(str) {
  console.assert(
    isPalindromeStr(str) === true,
    `输入${
      typeof str === "symbol" ? str.toString() : JSON.stringify(str)
    }时,应该返回true`
  );
}

function shouldReturnFalse(str) {
  console.assert(
    isPalindromeStr(str) === false,
    `输入${
      typeof str === "symbol" ? str.toString() : JSON.stringify(str)
    }时,应该返回false`
  );
}

// 如果传入的参数不是字符串类型,应该返回 false
shouldReturnFalse(1); // 输出 => false
shouldReturnFalse(true); // 输出 => false
shouldReturnFalse(null); // 输出 => false
shouldReturnFalse(undefined); // 输出 => false
shouldReturnFalse(Symbol("symbol")); // 输出 => false
shouldReturnFalse({ obj: "str" }); // 输出 => false

// 如果传入的是空字符串,应该返回 true
shouldReturnTrue(""); // 输出 => true

// 如果传入的空字符串只有一个字符,应该返回 true
shouldReturnTrue("a"); // 输出 => true

// 如果传入的空字符串是回文字符串,应该返回 true
shouldReturnTrue("aa"); // 输出 => true
shouldReturnTrue("aba"); // 输出 => true
shouldReturnTrue("abba"); // 输出 => true
shouldReturnTrue("abcba"); // 输出 => true

// 如果传入的空字符串不是回文字符串,应该返回 false
shouldReturnFalse("ab"); // 输出 => false
shouldReturnFalse("abc"); // 输出 => false
shouldReturnFalse("abcd"); // 输出 => false

//如果传入的回文诗句,应该返回 true
shouldReturnTrue("响水池中池水响"); // 输出 => true
shouldReturnTrue("黄金谷里谷金黄"); // 输出 => true

isPalindromeStr.js

function isPalindromeStr(str) {
  // 在这里写入具体的实现逻辑
  // 返回值是 boolean 类型, 如果是回文字符串应该返回 true, 否则返回 false
};
module.exports = isPalindromeStr; // 检测需要请勿删除

五、完成

function isPalindromeStr(str) {
  let flag = false
  // 在这里写入具体的实现逻辑

  //类型判断
  const type = typeof str
  //如果不是字符串则直接返回
  if (type != 'string') {
    return flag
  }
  //如果是字符串且长度为1或者0则直接返回true
  if (str.length == 1 || str.length == 0) {
    flag = true
  } else {
    //说明是字符串且长度不唯一 则进行判断
    //将字符串分割为数组,在将其反转,在转换为字符串
    let newStr = str.split('').reverse().join('')
    //如果反转后的字符串和原字符串相等则说明是回文
    if (newStr == str) {
      flag = true
    }
  }
  // 返回值是 boolean 类型, 如果是回文字符串应该返回 true, 否则返回 false
  return flag
}
module.exports = isPalindromeStr; // 检测需要请勿删除

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

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

相关文章

chatgpt赋能python:Python取值:介绍

Python取值:介绍 Python是一种非常流行的高级编程语言,适用于各种任务,包括数据科学、机器学习、Web开发和自动化。它被广泛使用,因为它易于学习、易于使用、易于阅读和易于维护。Python中的取值对于程序员来说是一个极其有用的工…

《商用密码应用与安全性评估》第四章密码应用安全性评估实施要点4.6测评报告编制报送和监督检查

目录 测评报告管理要求 测评报告编制 测评报告审核 测评报告批准和签发 测评报告存档 测评报告更正 测评报告作废和销毁 保密要求 测评报告体例 测评相关信息报送 1.基本要求 ①测评报告的备案 ②被测信息系统密码应用数据的采集报送 2.测评信息的采集、报送 1&a…

RVOS环境搭建-01

RVOS环境搭建-01 背景介绍操作系统的定义操作系统的分类典型的 RTOS 介绍课程系统RVOS简介 Hello WorldQEMU介绍QEMU-virt 地址映射 系统引导引导程序要做哪些事情如何判断当前hart是不是第一个hart?如何初始化栈? 如何在屏幕输出Hello World通过串口输出UART特点UART的物理接…

无线通信技术

无线通信网包括面向语言通信的移动电话系统以及面向数据传输的无线局域网和无线广域网。 蜂窝通信系统: 1978年,美国贝尔实验室开发了高级移动电话系统(AMPS)。 AMPS采用模拟制式的频分双工(FDD)技术 第…

mysql数据类型有哪几种

Mysql支持的多种数据类型主要有:数值数据类型、日期/时间类型、字符串类型。 整数 浮点数&定点数 注:定点数以字符串形式存储,对精度要求高时使用decimal较好;尽量避免对浮点数进行减法和比较运算。 时间/日期类型 字符串类型…

Temporal.Duration 规范用法

后端突然告诉我返回给我的时间用了一个新的规范,我展示的时候突然发现这个规范蛮有意思,算是一个新的规范,展示到页面的时候也思考了很多,记录一下子~(注:此 blog 主要目的仅是供自己记录,所以写…

chatgpt赋能python:Python取出列表中的某个数

Python取出列表中的某个数 在Python中,列表是一种非常重要的数据类型,它可以用来存储一系列有序的元素。在实际的开发中,经常会需要从列表中取出某个特定的数值,本文将介绍如何在Python中完成这个操作。 1. 使用index方法 Pyth…

AI实战营:MMPose开源算法库

RTMPose关键点检测全流程 MMPose预训练模型预测-命令行 预测单张图 # HRNet python .\demo\topdown_demo_with_mmdet.py .\demo\mmdetection_cfg\faster_rcnn_r50_fpn_coco.py https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco/faste…

chatgpt赋能python:Python反转语句:实用技巧提升编程能力

Python反转语句:实用技巧提升编程能力 Python是一门流行的编程语言,许多开发者都会选择Python作为主要的开发语言。其中一个原因是Python的语法简单易学,不仅适合初学者入门,也能被经验丰富的开发者用来构建复杂应用程序。在本文…

【网络原理】数据链路层 和 应用层 重点协议

✨个人主页:bit me👇 ✨当前专栏:Java EE初阶👇 目 录 🍀一. 以太网协议(数据链路层)🌻二. DNS (应用层)🌿三. 网络原理知识面试总结 &#x1f34…

【深入浅出Spring原理及实战】「夯实基础系列」360全方位渗透和探究SpringMVC的核心原理和运作机制(总体框架原理篇)

全方位渗透和探究SpringMVC的核心原理和运作机制 SpringMVC简介Spring Web MVC是什么Spring Web MVC的工作模式Spring Web MVC能帮我们做什么SpringMVC的底层依赖 SpringMVC工作流程SpringMVC中的组件DispatcherServlet前端控制器DispatcherServlet的职责和作用 HandlerMapping…

chatgpt赋能python:Python如何发送手机短信:实现方法解析和应用场景介绍

Python如何发送手机短信:实现方法解析和应用场景介绍 随着移动 App 的兴起,手机短信已成为现代人日常生活中不可或缺的一部分。在有些场景下需要编写 Python 程序去自动化发送短信,例如企业营销活动、警报系统等。本文将介绍 Python 发送短信…

chatgpt赋能python:Python可以搜集网上资料吗?

Python 可以搜集网上资料吗? Python 是一种非常流行的编程语言,它广泛应用于数据科学、机器学习、人工智能等领域。作为一名 Python 工程师,我们经常需要在互联网上搜集资料来解决开发中的问题,但是有些人会问:Python…

设计模式B站学习(一)(java)

这里写目录标题 一、设计模式概述1.1 软件设计模式的产生背景1.2 软件设计模式的概念1.3 学习设计模式的必要性1.4 设计模式分类 二、UML图2.1 类图概述2.2 类图的作用2.3 类图表示法2.3.1 类图表示方法2.3.2 类与类之间关系的表示方法2.3.2.1 关联关系2.3.2.2 聚合关系2.3.2.3…

C语言,指针详解

1. 指针是什么&#xff1f; 1. 指针是内存中一个最小单元的编号 2. 口头上的“指针”&#xff0c;指的是指针变量 #include<stdio.h>int main() {int a10;int * pa&a;// pa 是一个指针变量,用来存放 a 的地址//int ——> pa 所指向对象的类型//* 代表 pa是个指针…

【ros/ros2】ros2 humble镜像制作过程中碰到的问题记录

文章目录 序言1. 避免手动设置时区2. docker build中间某一步失败了3. sudo apt install ros-humble-desktop安装报错 E: Unable to locate package ros-humble-desktop4. 编译ros2 humnble时报错5. sudo rosdep init失败6. 下载依赖时失败&#xff1a;rosdep install --from-p…

局域网技术

共享信道的分配技术是局域网的核心技术&#xff0c;而这一技术又与网络的拓扑结构和传输介质有关。 拓扑结构&#xff1a; 1.总线型拓扑&#xff1a; 总线一种多点广播介质&#xff0c;所有的站点通过接口硬件连接到总线上。 传输介质主要是同轴电缆&#xff08;基带和宽带…

chatgpt赋能python:Python取消空格:如何优化代码和改善SEO?

Python取消空格&#xff1a;如何优化代码和改善SEO&#xff1f; 如果你是一位有10年python编程经验的工程师&#xff0c;那么你一定深刻体会到代码的质量对软件应用的重要性。而在今天&#xff0c;随着搜索引擎优化&#xff08;SEO&#xff09;的发展和对网页排名的更高要求&a…

FastBup:计算机视觉大型图像数据集分析工具

0.简介 官方github网址项目目的&#xff1a;当前大规模图像数据集一团糟&#xff0c;数据量巨大但质量堪忧&#xff0c;有时候训练集、验证集、测试集会有重复数据造成数据泄露。FastBup可以识别重复项、近似重复项、异常图像、错误标注、异常值&#xff0c;在cpu上就可以处理…

Apache Kafka - 流式处理

文章目录 概述什么是流式处理流式处理的一些概念时间状态流和表的二元性时间窗口 流式处理的设计模式单个事件处理使用本地状态多阶段处理和重分区使用外部查找——流和表的连接流与流的连接乱序的事件重新处理 概述 Kafka被广泛认为是一种强大的消息总线&#xff0c;可以可靠…