时间:2021-05-26
翻转字符串
翻转字符串(Reverse a String),就是把字符串倒序处理的意思,比如给定一个字符串”hello”,翻转后应该返回”olleh”。
测试用例
实现思路
这里说最方便的方法就是将字符串转成数组,再颠倒数组并转成字符串返回。需要用到字符串对象和数组对象的内置方法:
具体可以去看JavaScript参考手册
function reverseString(str) { return str.split('').reverse().join('');}reverseString("hello");一句return搞定,很简单有木有?!
在此基础上来看看回文是怎么玩的⬇️
回文
“Madam,I'mAdam.” 这是亚当在伊甸园里碰上夏娃说的第一句话,这句话正着读和反着读一模一样,这样的句子就是回文,英文里叫Palindrome。
举个栗子——“上海自来水来自海上”,这句话顺着读和反着读都是相同的,还有很多英语单词也是:Level、Madam、Radar、LOL(哈哈哈)…
测试用例
实现思路
我们需要写一个叫palindrome()的方法,传入一个叫str的参数,如果str是一个Palindromes将返回true,反之为false。
需要注意将标点符号和空格去掉并toUpperCase or toLowerCase后再进行判断。
需要用到以下知识点:
关于正则表达式
这里要求匹配大小写英文字母和整数,任何标点符合和空格将被过滤掉。所以可以使用 /[^A-Za-z0–9]/g 或者 /[\W_]/g
这是我的方法:
function palindrome(str) { str = str.replace(/[\W_]/g,'').toLowerCase(); var reverseStr = str.split('').reverse().join(''); return str===reverseStr;}palindrome("eye");我在网上看到还可以用For循环来实现:
function palindrome (str) { var reg = /[\W_]/g, regStr = str.toLowerCase().replace(reg, ''), len = regStr.length; for (var i = 0, halfLen = len / 2; i < halfLen; i++){ if (regStr[i] !== regStr[len - 1 - i]) { return false; } } return true;}这个思路很巧妙的运用了回文的特点,把整个字符串切成一半,循环遍历并依次判断首尾字符是否相等。
还有个运用了递归的实现:
function palindrome (str) { // 删除字符串中不必要的字符 var re = /[\W_]/g; // 将字符串变成小写字符 var lowRegStr = str.toLowerCase().replace(re, ''); // 如果字符串lowRegStr的length长度为0时,字符串即是palindrome if (lowRegStr.length === 0) { return true; } // 如果字符串的第一个和最后一个字符不相同,那么字符串就不是palindrome if (lowRegStr[0] !== lowRegStr[lowRegStr.length - 1]) { return false; } else { return palindrome(lowRegStr.slice(1, lowRegStr.length - 1)); }}感觉另外两个实现思路比我屌多了,自己在编程的路上才走没多远,一步一步来吧。
对了,别纠结翻转字符串和回文的区别了!翻转字符串仅仅是将倒序后的字符串返回;而回文面对的则是更长更复杂的句子,需要将过滤掉空格和标点符号的句子和倒序后的句子比较是否相等。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者使用Javascript能带来一定的帮助,如果有疑问大家可以留言交流。谢谢大家对的支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了Python实现判断一个整数是否为回文数算法。分享给大家供大家参考,具体如下:第一个思路是先将整数转换为字符串,再将字符串翻转并与原字符串做比较d
今天练习C#的一个功能,就是将一个字符串时行翻转显示如:stringstr="Insus.NET";翻转成为:stringstr="TEN.susnI";方法与
C++/C回文字符串的实例详解判断输入的字符串是不是回文字符串,正反读一样。.C版#includeintmain(){charhe[100];chara;int
给定一个字符串,要求在这个字符串中找到符合回文性质的最长子串。所谓回文性是指诸如“aba”,"ababa","abba"这类的字符串,当然单个字符以及两个相邻相
给定一个字符串,求它最长的回文子串长度,例如输入字符串'35534321',它的最长回文子串是'3553',所以返回4。最容易想到的办法是枚举出所有的子串,然后