JS回文检查(FreeCodeCamp项目)
需求
如果传入的字符串是回文字符串,则返回 true。 否则返回 false
回文 palindrome,指在忽略标点符号、大小写和空格的前提下,正着读和反着读一模一样。
注意:检查回文时,你需要先去除所有非字母数字的字符(标点、空格和符号),并将所有字母都转换成大写或都转换成小写。
测试结果要求
palindrome("eye") 应返回一个布尔值。
palindrome("eye") 应返回 true。
palindrome("_eye") 应返回 true。
palindrome("race car") 应返回 true。
palindrome("not a palindrome") 应返回 false。
palindrome("A man, a plan, a canal. Panama") 应该返回 true。
palindrome("never odd or even") 应返回 true。
palindrome("nope") 应该返回 false。
palindrome("almostomla") 应返回 false。
palindrome("My age is 0, 0 si ega ym.") 应返回 true。
palindrome("1 eye for of 1 eye.") 应返回 false。
palindrome("0_0 (: /-\ :) 0-0") 应返回 true。
palindrome("five|\_/|four") 应返回 false。
已给框架
function palindrome(str) {
  return true;
}
palindrome("eye");需求分析(解题思路)
首先判断字符串是否为回文(正着读反着读都一样)
var newStr = "";// 创建一个空的String型以存放倒过来的字符串
// 将字符(str) 倒着插入 新建的空的String型(newStr)
// 1、在for循环里var一个i变量,其初始值为 字符串长度-1(为了让i等于字符串的最后一个字符的索引值),让i不断减小,直至减小到0
// 2、将数组里的第i个字符依次添加到newStr里
for(var i = str.length - 1;i >= 0;i--) {
    newStr += str[i];
}
// 返回 判断两个字符串是否相等 的布尔值
return str == newStr;接着,满足 删除原字符串里除了字母数字以外的东西 的需求
注意:这个需要写在 判断回文 前面
// 去除字母数字以外的字符
// 1、判断字符串中是否包含0-9,a-z,A-Z以外的符号
// 2、如果有,将它们删除(翻译:将它们改成“”)
if(str.match(/[^0-9a-zA-Z]/)) {
    while (str.match(/[^0-9a-zA-Z]/)) {
        str = str.replace(/[^0-9a-zA-Z]/,"");
    }
}
// 把所有空格删除
// 思路和 去除字母数字以外的字符 一样
if(str.match(" ")) {
    while (str.match(" ")) {
        str = str.replace(" ","");
    }
}最后,满足 将所有字母都转换成大写或都转换成小写 的需求
注意:这个也需要写在 判断回文 前面
// 把所有字母转成小写
str = str.toLowerCase();最终代码
function palindrome(str) {
    // 去除字母数字以外的字符
    if(str.match(/[^0-9a-zA-Z]/)) {
        while (str.match(/[^0-9a-zA-Z]/)) {
            str = str.replace(/[^0-9a-zA-Z]/,"");
        }
    }
    // 把所有字母转成小写
    str = str.toLowerCase();
    // 把所有空格删除
    if(str.match(" ")) {
        while (str.match(" ")) {
            str = str.replace(" ","");
        }
    }
    // 回文检查
    var newStr = "";
    for(var i = str.length - 1;i >= 0;i--) {
        newStr += str[i];
    }
    return str == newStr;
}
palindrome("eye");JS回文检查(FreeCodeCamp项目)的更多相关文章
- 7.Deque的应用案例-回文检查
		- 回文检测:设计程序,检测一个字符串是否为回文. - 回文:回文是一个字符串,读取首尾相同的字符,例如,radar toot madam. - 分析:该问题的解决方案将使用 deque 来存储字符串 ... 
- js回文数的四种判断方法
		目录 1. 字符串的转换 1.1 简单点,使用高阶函数来完成 1.2 从后往前循环字符串数组 1.3 以中间数为节点,判断左右两边首尾是否相等 2. 数字转换 2.1 求模得尾数,除10得整数 判断一 ... 
- 07 Deque的应用案例-回文检查
		- 回文检测:设计程序,检测一个字符串是否为回文. - 回文:回文是一个字符串,读取首尾相同的字符,例如,radar toot madam. - 分析:该问题的解决方案将使用 deque 来存储字符串 ... 
- 七.Deque的应用案例-回文检查
		- 回文检测:设计程序,检测一个字符串是否为回文. - 回文:回文是一个字符串,读取首尾相同的字符,例如,radar toot madam. - 分析:该问题的解决方案将使用 deque 来存储字符串 ... 
- js 回文判断
		方法一: 1.toLowerCase() //统一小写. 2.split(" ").reverse().join(" "); //字符串翻转. func ... 
- python--使用双向队列结构检查回文
		这个简单,队列可两边进两边出. # coding = utf-8 # 双向进出队列 class Deque: def __init__(self): self.items = [] def is_em ... 
- FCC JS基础算法题(2):Check for Palindromes(检查回文字符串)
		题目描述: 如果给定的字符串是回文,返回true,反之,返回false.如果一个字符串忽略标点符号.大小写和空格,正着读和反着读一模一样,那么这个字符串就是palindrome(回文).注意你需要去掉 ... 
- 用JS实现回文数的精准辨别!!!
		笔者最近在一边看<JS高级程序设计3>一边在FCC上找题目练习啊.那叫一个爽.这不,刚刚用生命在课堂,寝室,实验室,图书馆等各种场所将第五章"引用类型"搞定,FCC便知 ... 
- shell脚本,检查给出的字符串是否为回文
		[root@localhost wyb]# .sh #!/bin/bash #检查给出的字符串是否为回文 read -p "Please input a String:" numb ... 
- js判断一个字符串是否是回文字符串
		回文字符串:即字符串从前往后读和从后往前读字符顺序是一致的. 如:字符串abccba,从前往后读是a-b-c-c-b-a:从后往前读也是a-b-c-c-b-a 方法一 function palindR ... 
随机推荐
- C语言数据结构串的表示与操作的实现
			串的堆分配储存表示 typedef struct { char* ch;//若是非空字符串,则按串长分配存储区,否则ch为NULL int length;//串长度 } HString; 生成一个其值 ... 
- vue3中inject无法获取provide传递的最新的值
			// 爷组件 import { defineComponent, reactive, toRefs, onMounted, provide ,computed} from 'vue'; const ... 
- Linux操作命令(八)1.sort命令 2.uniq命令 3.join命令
			1.sort,排序 常用参数 参数 描述 -n 基于字符串的长度来排序,使用此选项允许根据数字值排序,而不是字母值 -k 指定排序关键字 -b 默认情况下,对整行进行排序,从每行的第一个字符开始.这个 ... 
- mysql8.0.30主从配置
			安装包下载地址: https://downloads.mysql.com/archives/community/ 1. 解压介质包: # tar xf mysql-8.0.30-linux-glibc ... 
- 关于winform 调用本地html页面路径不正确问题
			//为了使网页能够与winform交互 将com的可访问性设置为真 [System.Security.Permissions.PermissionSet(System.Security.Permiss ... 
- 阿里云oss初使用
			一.购买 二.配置RAM权限 https://ram.console.aliyun.com/users 1.创建用户 2.创建完成后注意获取AccessKey ID.AccessKey Secret( ... 
- Linux系统下追加记录到文件中的实例代码解读
			今日阅读Linux程序设计第四版,找到一个使用mmap函数的实例 问题描述 该程序主要定义一个结构体,随后利用mmap,msync以及munmap函数对其进行内容追加,定位以及修改内容的操作. 先自己 ... 
- ssh操作
			# -*- coding: utf-8 -*-"""------------------------------------------------- File Name ... 
- 深入理解JVM - 自动内存管理
			对于从事C.C++程序开发的开发人员来说,在内存管理领域,他们既是拥有最高权力的"皇帝",又是从事最基础工作的劳动人民--既拥有每一个对象的"所有权",又担负着 ... 
- LP1-5:WEB应用测试技巧
			一.静态页面 静态文字 1) 检查一个页面或者一组中多个页面的字体.size.颜色.位置等因素是否符合需求: 2)检查页面文字图标的间距.行距是否统一,对齐方式是否统一: 3)静态文字的含义是否符号需 ... 
