神策算法题
题目描述:对于一个长度为 n 字符串,首先这个字符串中包含着一些空格,就像"Hello World"一样,然后我们要做的是把这个字符串中由空格隔开的单词反序,同时反转每个字符的大小写,比如"Hello World"变形后就变成了"wORLD hELLO"。
思路分析:
1. 将字符串转换成字符串数组,并反转[‘World’, ‘Hello’]。
2. 上述结果中的每一个字符提取到字符串数组中。
3. 遍历整个字符串数组,根据其中字符的Unicode值来判定大小写,如果是97-122之间,则表示为小写,将其转换成大写,如果是65-90之间,则表示为大写,转换成小写。将转换后的字符添加到result结果数组中。在每个单词结束后,添加空格分隔。
4. 遍历完成之后,将最后一个空格删掉pop()。
5. 将result结果数组转换成字符串格式。
可使用C++、Java、JavaScript、Python等语言,这里使用最简便的JavaScript脚本语言。
let n = "Hello World"
var ans = function(str){
var result = []
var s = n.split(' ').reverse()
var ss = []
for(var i = 0; i< s.length; i++){
ss.push(s[i].split(""))
}
for(let i = 0;i<ss.length;i++) {
for(let j = 0; j < ss[i].length; j++){
unicodeNum = ss[i].join("").charCodeAt(j)
if (122 >= unicodeNum && unicodeNum >= 97){
result.push(ss[i][j].toUpperCase())
}
if(65 <= unicodeNum && unicodeNum <= 90){
result.push(ss[i][j].toLowerCase())
}
}
result.push(" ")
}
result.pop()
return result.join("")
}
console.log(ans(n))