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 难度普及- 提交 讨论 题解 最新讨论 暂时没有讨论 ...
随机推荐
- Servlet中Response对象应用2(输出随机验证码图片)
预期结果如图: 可用于登陆界面的验证 需要使用random类和绘画相关的几个类.以及imageio的内容. import java.awt.*; import java.awt.image.Buffe ...
- Spring MVC控制层传递对象后在JSP页面中的取值方法
List<Order> orders = new ArrayList<Order>(); for (int i = 0; i < 3; i++) { Order t = ...
- oracle语句批处理
数据量有40万条,从一个对象table_01一条一条取数到对象table_02,如果用原始的 Statement Statmt =comm.createStatement(); String sql= ...
- MySQL(七)MySQL常用函数
前言 上一篇给大家介绍了,MySQL常用的操作符其实已经是非常的详细了,现在给大家分享的是MySQL的常用函数.希望对我和对大家都有帮助. 一.字符串函数 1.1.LOWER.lcase(string ...
- 关于Meta标签中format-detection属性及含义
一.Meta标签中的format-detection属性及含义 意为:格式检测 或许你会有这样的经历:当你在制作手机端的页面中,点击了没有加任何链接的格式的数字时,这时手机会进行自动拔号提示操作! 禁 ...
- Java虚拟机的内存结构
我们都知道虚拟机的内存划分了多个区域,并不是一张大饼.那么为什么要划分为多块区域呢,直接搞一块区域,所有用到内存的地方都往这块区域里扔不就行了,岂不痛快.是的,如果不进行区域划分,扔的时候确实痛快,可 ...
- React——from
在React中HTML的from元素与其他的DOM元素有些不同.因为表单元素自然而然的会有一些内部状态 一.controlled components 在HTML中,像input,select,tex ...
- 详解 mpls vpn 的实现
MPLS VPN的实现 一.实验目的 该实验通过MPLS VPN的数据配置,使学生掌握路由器相关接口的IP地址设置.路由协议的配置以及MPLS VPN的完整的创建过程, 从而加深对IP网络的IP编址. ...
- MPLS VPN随堂笔记1
MPLS VPN 基础 1.MPLS vpn架构的特点 1.1.允许不同CE传递相同私网路由 1.2.SP内部(所有P路由器)不需要学习CE路由 1.3.无安全保障但有带宽保障(跟SP租用服务) 2. ...
- 必应词典英语学习APP案例分析
一.调研,评测 1.在此次作业之前并没有听过这个学英语app,必应听起来就像英语单词bing,第一次听到觉得这个app很奇怪,但没有将它和英语挂上钩.但是使用一阵子之后我觉得这个名字很好上口,其次这个 ...