尝试创建一个能够解释空格的回文函数
Trying to create a palindrome function that accounts for spaces
好的,回文是一个单词,是相同的拼写反向。如果我们想把一个同样的短语反过来看呢?所以kook
是1。race car
是另一个。
所以我做了一个不考虑空格的
function isPal(string){
var l = string.length;
for (var i = 0; i < (l/2); ++i) {
if (string.charAt(i) != string.charAt(l - i - 1)){
return false;
}
}
return true;
}
这个对单词很有效。
现在我在想,将字符串推入数组,并将每个字符分成自己的字符串,然后删除任何空格,然后运行if (string.charAt(i) != string.charAt(string.length - i - 1))
。所以这是我写的,但失败了…
function isPalindrome(string){
var arr = [];
arr.push(string.split(''));
for (i = 0; i < arr.length; i++){
if (arr[i] === ' '){
arr.splice(i, 1);
如果我返回arr
,它仍然给我一个字符串,其中有空格。我该如何做到这一点?谢谢!
编辑:使用了解决方案,但在"赛车"上仍然是错误的这是我得到的:
function isPalindrome(string){
var arr = string.split('');
for (i = 0; i < arr.length; i++){
if (arr[i] === ' '){
arr.splice(i, 1);
} else if (arr[i] != arr[arr.length - i - 1]){
return false;
}
}
return true;
}
我的错误在哪里?
您的问题在以下行:
arr.push(string.split(''));
string.split(")返回一个数组。因此,arr实际上是一个包含一个条目的数组(另一个包含字符的数组)。替换:
var arr = [];
arr.push(string.split(''));
var arr = string.split('');
应该能正常工作
检查不带空格的字符串:
function isPal(string){
string = string.split(" ").join(""); // remove all spaces
var l = string.length;
for (var i = 0; i < (l/2); ++i) {
if (string.charAt(i) != string.charAt(l - i - 1)){
return false;
}
}
return true;
}
isPal("a man a plan a canal panama"); // true
似乎更容易分割成一个数组,反向并再次连接,以检查一个单词是否是回文。如果您想忽略空格,只需删除所有的空格实例:
let word = 'race car';
let isPalindrome = (word) => {
let nospaces = word.replace(/'s/g, '');
return [...nospaces].reverse().join('') === nospaces;
}
或non-es6:
var word = 'race car';
var isPalindrome = function(word) {
var nospaces = word.replace(/'s/g, '');
return nospaces.split('').reverse().join('') === nospaces;
}
相关文章:
- 我如何找到一个句子中的所有空格并替换忽略它们
- Regex代码只允许一个空格
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 用空格替换下划线PHP
- 如何为jQuery屏蔽输入插件创建一个允许字母数字、空格和重音字符的掩码
- 你能解释一下这个阶乘函数是如何工作的吗?
- 当没有文本输入聚焦时检测空格键按下
- 一个密码测试程序,如果存在空格,它会提醒用户
- 在谷歌应用程序脚本中转换为空格的制表符
- 如何将字符串拆分为字符,但在javascript中保留空格
- Jquery:如何获取所选选项全文(带空格)
- 你能解释一下为什么这个javascript不正确吗
- 用空格替换+
- regex表示逗号,后跟空格或仅逗号
- Javascript Regexp-不接受空格,但应该接受
- 如何从字符串中删除除字母、数字、空格、感叹号和问号之外的所有内容
- 如何替换JavaScript字符串中除字母和数字之外的所有内容(空格/符号)
- 为什么IE将选项卡解释为8个空格而notepad++解释为4个空格?
- 尝试创建一个能够解释空格的回文函数