Tôi hiện đang cố gắng giải quyết Thử thách Chỉ số Palindrom HackerRank. //www.hackerrank.com/challenges/palindrom-index/probol
Chức năng của tôi dường như đang trả về "không xác định" thay vì giải pháp [chỉ mục nên được thay đổi để chuỗi trở thành một palindrom. Tại sao?
function palindromeIndex[s] {
// Write your code here
const reverse = [string] => s.split[""].reverse[].join[""];
var reversed = reverse[s];
if [reversed === s] {
return -1;
} else {
for [let i = 0; i < s.length; i++] {
// splice the array to remove index i and then compare
let myArray = s.split[""];
if [[myArray.splice[i, 1].join[""]] === reverse[myArray.splice[i, 1].join[""]]] {
return i;
}
} ;
}
}
console.log[palindromeIndex["racezcar"]];
skyline3000
7.4392 Huy hiệu vàng23 Huy hiệu bạc33 Huy hiệu Đồng2 gold badges23 silver badges33 bronze badges
hỏi ngày 2 tháng 9 năm 2021 lúc 21:32Sep 2, 2021 at 21:32
1
Hàm
reverse
của bạn luôn hoạt động trên cùng một tham số đầu vàos
cho hàm, bởi vì tham số cục bộ của hàm đảo ngược sẽ được gọi làstring
. Do đó, bất cứ khi nào bạn gọireverse[something]
, bạn sẽ lấy lại được đầu vào ban đầu đảo ngược.Bạn dường như có một sự hiểu lầm về cách
Array.splice
hoạt động.- nó hoạt động tại chỗ IE sửa đổi mảng bạn gọi nó trên
- nó trả về các phần tử bị loại bỏ chứ không phải mảng đã sửa đổi
Trong trường hợp của bạn, có vẻ dễ sử dụng
substr
thay vì nối ...
function palindromeIndex[s] {
// Write your code here
const reverse = [string] => string.split[""].reverse[].join[""];
if [s === reverse[s]] {
return -1;
} else {
for [let i = 0; i < s.length; i++] {
let spliced = s.substr[0, i] + s.substr[i+1];
if [spliced === reverse[spliced]]
return i;
}
}
//return whatever specified, when the input can't be
//converted into a palindrome ...
}
console.log[palindromeIndex["racezcar"]];
console.log[palindromeIndex["racezcars"]];
Mã này vẫn trả về
function palindromeIndex[s] {
// Write your code here
const reverse = [string] => string.split[""].reverse[].join[""];
if [s === reverse[s]] {
return -1;
} else {
for [let i = 0; i < s.length; i++] {
let spliced = s.substr[0, i] + s.substr[i+1];
if [spliced === reverse[spliced]]
return i;
}
}
//return whatever specified, when the input can't be
//converted into a palindrome ...
}
console.log[palindromeIndex["racezcar"]];
console.log[palindromeIndex["racezcars"]];
0 khi không có cách nào để biến đầu vào thành palindrom,Đã trả lời ngày 2 tháng 9 năm 2021 lúc 21:56Sep 2, 2021 at 21:56
Derpirscherderpirscherderpirscher
Huy hiệu vàng 12k33 gold badges15 silver badges32 bronze badges
1
Lý do chức năng của bạn trả về
function palindromeIndex[s] {
// Write your code here
const reverse = [string] => string.split[""].reverse[].join[""];
if [s === reverse[s]] {
return -1;
} else {
for [let i = 0; i < s.length; i++] {
let spliced = s.substr[0, i] + s.substr[i+1];
if [spliced === reverse[spliced]]
return i;
}
}
//return whatever specified, when the input can't be
//converted into a palindrome ...
}
console.log[palindromeIndex["racezcar"]];
console.log[palindromeIndex["racezcars"]];
0 là do chức năng reverse
của bạn. Có một sai lầm nhỏ khi bạn gọi s
thay vì string
:const reverse = [string] => s.split[""].reverse[].join[""];
nên được thay đổi thành:
const reverse = [string] => string.split[""].reverse[].join[""];
Nếu không, bạn vẫn còn một chút việc phải làm để làm cho nó hoạt động như mong đợi.
Đã trả lời ngày 2 tháng 9 năm 2021 lúc 21:57Sep 2, 2021 at 21:57
Solokosolokosoloko
1891 Huy hiệu bạc12 Huy hiệu đồng1 silver badge12 bronze badges
3
Tệp này chứa văn bản unicode hai chiều có thể được giải thích hoặc biên dịch khác với những gì xuất hiện dưới đây.Để xem xét, hãy mở tệp trong một trình soạn thảo cho thấy các ký tự Unicode ẩn.Tìm hiểu thêm về các ký tự unicode hai chiều
const_=require['lodash']; _ = require['lodash']; | |
functionsolve[input,n]{ solve[input, n] { | |
constcombinations=k_combinations[getArrayToN[input.length],n]; combinations = k_combinations[getArrayToN[input.length], n]; | |
letpalindrome=0; palindrome = 0; | |
for[leti=0;i [let i = 0; i Chủ Đề |