问题
如果我想使用>>> from pip.baseparser import ConfigOptionParser
>>> ConfigOptionParser(name="foo").get_config_files()
['C:\\ProgramData\\pip\\pip.ini', 'C:\\Users\\salimfadhley\\pip\\pip.ini', 'C:\\Users\\salimfadhley\\AppData\\Roaming\\pip\\pip.ini']
>>>
获取字符串的最后一个字符,我会这样做..
slice
是否可以选择同时包含lastCharacter = theString.slice(-1);
和start
数字参数的最后一个字符?像这样......
end
答案
没有特殊的-0位
我提出的理由
我问的原因是我正在寻找两个参数的变量,这些变量会在每个循环上递减,因为我构建了一个与var start = -1;
var end = -0; // nonsensical, I realize
lastCharacter = theString.slice(start, end);
相反的新变量。在atomrc的回答之前,我没想到只使用theString
并从最后一个字符开始工作而不是使用-1来开始最后一个字符,就像我在下面的例子中所做的那样(这需要for循环的第一次迭代的if语句。
这是关于codechools街机javascript测试的第三个问题'检查字符串是否是回文'
我的解决方案是..
theString.length

我必须为第一次迭代创建一个if语句。有了atomrc的答案,我现在看到我没有必要使用负数作为切片,因为我知道字符串的长度。
凭借新知识,我的新解决方案有点短......
function checkPalindrome(inputString) {
var characterTotal = inputString.length;
var inputStringStringified = inputString + '';
var slicedLetter;
var sliceStart = -1;
var sliceEnd = -1;
var backwards = '';
for (i = characterTotal; i > 0; i--) {
if (i === characterTotal) { // first run
slicedLetter = inputStringStringified.slice(sliceStart);
sliceStart = sliceStart - 1;
backwards = backwards + slicedLetter;
} else {
slicedLetter = inputStringStringified.slice(sliceStart, sliceEnd);
sliceStart = sliceStart - 1;
sliceEnd = sliceEnd - 1;
backwards = backwards + slicedLetter;
}
}
if (inputString === backwards) {
alert('true');
} else {
alert('false');
}
}
checkPalindrome('abaaba');

..但仍然是一个可怕的解决方案。解决之后,我看到了其他人想出来的东西,有些是简单的衬里。
答案 0 :(得分:0)
你去:)
theString.slice(theString.length - 1, theString.length)