来个反转字符串面试骚操作
面试经常遇到反转字符串的问题,如何让面试官眼前一亮呢?
面试题:反转字符串
常用处理
function reverseStr(str) {
return str.split('').reverse().join('')
}
如果不让你用reverse呢?
我用的双指针法
function reverse(str) {
let splitStr = str.split('')
let start = 0
let end = splitStr.length - 1
let template
while(start < end) {
if(splitStr[start] !== splitStr[end]) {
template = splitStr[end]
splitStr[end] = splitStr[start]
splitStr[start] = template
}
start++
end--
}
return splitStr.join('')
}
如果需要保留单词顺序呢?
题目:给定一个字符串,你需要反转字符串中每个单词的顺序,同时仍然保留空格和单词的初始顺序。
如果学了上面的双指针反转字符串,那么继续来个套娃就搞定了
function reverseStr(str) {
let splitEmptyStr = str.split(' ')
function reverse(str) {
let splitStr = str.split('')
let start = 0
let end = splitStr.length - 1
let template
while(start < end) {
if(splitStr[start] !== splitStr[end]) {
template = splitStr[end]
splitStr[end] = splitStr[start]
splitStr[start] = template
}
start++
end--
}
return splitStr.join('')
}
splitEmptyStr.forEach((item, index) => {
splitEmptyStr[index] = reverse(item)
})
return splitEmptyStr.join(' ')
}
希望能给你带来帮助