Check for Palindromes-FCC
問題:
检查回文字符串
如果给定的字符串是回文,返回true,反之,返回false。
如果一个字符串忽略标点符号、大小写和空格,正着读和反着读一模一样,那么这个字符串就是palindrome(回文)。
注意你需要去掉字符串多余的标点符号和空格,然后把字符串转化成小写来验证此字符串是否为回文。
函数参数的值可以为"racecar","RaceCar"和"race CAR"。
当你完成不了挑战的时候,记得开大招'Read-Search-Ask'。
这是一些对你有帮助的资源:
要求:
palindrome("eye") 应该返回一个布尔值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.思路:
由于回文数是指从中间起,两边的字符调换后与原字符一致,所以进行如下操作——
1.
将参数去掉标点符号及空格:replace(/[\W_]/g,"") //[]:定义匹配的字符范围 \W:匹配任何非单词字符 _:为了最后一项去掉_ g:全局匹配
将参数转换为小写:toLowerCase()
2.
考虑到回文数的定义,只需要调换字符串即可:reverse()
但是因为reverse() 是对数组进行操作,所以应该先把参数转换为数组:split("") //split():将字符串按指定的规则裁切并转换为数组 “”:按字符串每一个字符裁切
因为最后要比较字符串,所以再将数组转为字符串:join("") //join():通过指定的分隔符(默认是逗号)把数组中的所有元素放入一个字符串 "":使用“空”分隔(其实就是不分隔...)
3.
第一步是对传参修饰,第二步是对第一步的后续加工,将其赋值给一个变量即可
最后返回比较两个变量的结果:return 传参===变量;
1 function palindrome(str) {
2 // 请把你的代码写在这里
3 str = str.replace(/[\W_]/g,"").toLowerCase();
4 var restr = str.split("").reverse().join("");
5 return str===restr;
6 }
7
8
9
10 palindrome("A man, a plan, a canal. Panama");
记录的原因是之前某招聘题目遇到过,当时的想法是从传参中间破开,使用charAt对比对位的字符...
今天练习FCC的时候又遇到了,突然发现使用变换更快= =(心碎)
所以记录下来,希望给自己警示,同时希望给有迷惑的小伙伴一点丝毫不存在的帮助蛤蛤蛤
そこまでだ
Check for Palindromes-FCC的更多相关文章
- #254 Check for Palindromes
Check for Palindromes 检查回文字符串 如果给定的字符串是回文,返回true,反之,返回false. 如果一个字符串忽略标点符号.大小写和空格,正着读和反着读一模一样,那么这个字符 ...
- FCC JS基础算法题(2):Check for Palindromes(检查回文字符串)
题目描述: 如果给定的字符串是回文,返回true,反之,返回false.如果一个字符串忽略标点符号.大小写和空格,正着读和反着读一模一样,那么这个字符串就是palindrome(回文).注意你需要去掉 ...
- freeCodeCamp:Check for Palindromes
如果给定的字符串是回文,返回true,反之,返回false. 如果一个字符串忽略标点符号.大小写和空格,正着读和反着读一模一样,那么这个字符串就是palindrome(回文). 注意你需要去掉字符串多 ...
- Check for Palindromes
如果给定的字符串是回文,返回true,反之,返回false. 如果一个字符串忽略标点符号.大小写和空格,正着读和反着读一模一样,那么这个字符串就是palindrome(回文). 注意你需要去掉字符串多 ...
- Check for Palindromes-freecodecamp算法题目
Check for Palindromes(检查回文字符串) 要求 给定的字符串是回文,返回true,反之,返回false.(如果一个字符串忽略标点符号.大小写和空格,正着读和反着读一模一样,那么这个 ...
- js中字符和数组一些基本算法题
最近在刷 fcc的题,跟升级打怪一样,一关一关的过,还挺吸引我的.今天抽时间把 Basic Algorithm Scritping 这部分题做了,根据一些提示,还是比较简单的.有些题的处理方式 方法 ...
- FreeCodeCamp 前端初级算法(个人向)
freecodecamp 初级算法地址戳这里 Reverse a String 翻转字符串 function reverseString(str) { str=str.split("&quo ...
- FreeCodeCamp 的 Basic Algorithm Scripting 题解(1)
这是本人的原创文章,转载请注明原文链接http://www.cnblogs.com/wusuowiaaa1blog/p/5932121.html. 1.Reverse a String 翻转字符串 先 ...
- FreeCodeCamp初级算法部分学习
Reverse a String 翻转字符串 先把字符串转化成数组,再借助数组的reverse方法翻转数组顺序,最后把数组转化成字符串. 你的结果必须得是一个字符串 当你完成不了挑战的时候,记得开大招 ...
- 洛谷P1207 [USACO1.2]双重回文数 Dual Palindromes
P1207 [USACO1.2]双重回文数 Dual Palindromes 291通过 462提交 题目提供者该用户不存在 标签USACO 难度普及- 提交 讨论 题解 最新讨论 暂时没有讨论 ...
随机推荐
- 深入理解HTTP协议—HTTP协议详解(真的很经典)
引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1. ...
- 史上最全前端面试题(含答案)-B篇
面试有几点需要注意面试题目: 根据你的等级和职位变化,入门级到专家级:范围↑.深度↑.方向↑.题目类型: 技术视野.项目细节.理论知识型题,算法题,开放性题,案例题.进行追问: 可以确保问到你开始不懂 ...
- LESS文档
less官方介绍文档(http://lesscss.org/#docs) Getting Started Less is a CSS pre-processor, meaning that it ex ...
- java语言基础(变量和运算符)
java八大基本数据类型: 整型{ int(整型) short(短整型) long(长整型)} 浮点型{ float(浮点型) double(双精度)} 布尔{boolean} ...
- 搭建DNS服务
author:JevonWei 版权声明:原创作品 修改/var/named/下的数据库文件的数据时,需手动修改serial序列号 UDP协议53端口用于用户DNS查询,TCP协议53端口用于主从DN ...
- 解决:"不再sudoers文件中,此事将不做被报告”的问题
使用sudo出现问题:不再sudoers文件中,此事将不做被报告 系统:win8.1 +cents 7 问题:在虚拟机中,默认不是root账号,在使用sudo命令时候收到下面警告: sudo命令含义: ...
- 使用Docker搭建简易的 Java Web 环境
 从[<从最简单的入手学习 Docker ...
- SpringBoot学习开篇
"Spring Framework已有十余年的历史了,已成为Java应用程序开发框架的事实标准.在如此悠久的历史背景下,有人可能会认为Spring放慢了脚步,躺在了自己的荣誉簿上,再也做不出 ...
- ★浅谈Spanking情节
- UX是什么?
UX(用户体验),操作过安卓手机或者苹果手机的系统吧?那么操作过程的整体体验就叫UX,而操作过程中所看到的界面颜色啦,图案,字体大小啦等等都属于UI设计,而交互设计(Interaction Desig ...