今天我有一个非常有趣的采访问题:
给定一个字符串,您必须确定该字符串在置换时是否具有回文结构.
以下是我提出的实现.但是有更好的解决方案吗?
function canBePalindrome(someStr) {
if (typeof someStr !== "string") {
throw new Error("Expecting argument to be a string !");
}
if (someStr.length == 1) return someStr;
var canBePalin = false;
var _chunks = someStr.split("");
var _length = _chunks.length;
for (var i = 0; i < _length; i++) {
for (var j = i + 1; j < _length; j++) {
var temp_char = _chunks[i];
_chunks[i] = _chunks[j];
_chunks[j] = temp_char;
if (isPalindrome(_chunks.join(""))) return true;
}
}
return canBePalin; …Run Code Online (Sandbox Code Playgroud)我坚持下面提到的这种特殊情况.有人可以向我解释下列行为的原因是什么.
Infinity - Infinity结果为何NaN, but NaN === (Infinity-Infinity)结果false如何?