/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param s string字符串
* @param n int整型
* @return string字符串
*/
/**
* 解法一:正则
* 时间复杂度:O(n)
* 空间复杂度:O(n)
*/
export function trans(s: string, n: number): string {
let res: string = ''
if (s.length === 0 || n === 0) return res
// 翻转
const revStrArr: string[] = s.split(' ').reverse()
const revStr: string = revStrArr.join(' ')
// 大小写转换
const reg1 = /[a-z]/
const reg2 = /[A-Z]/
for (let i = 0; i < revStr.length; i++) {
if (reg1.test(revStr[i])) {
res += revStr[i].toUpperCase()
} else if (reg2.test(revStr[i])) {
res += revStr[i].toLowerCase()
} else {
res += ' '
}
}
return res
}
/**
* 解法二:charAtCode(0)性能更好,推荐
* 时间复杂度:O(n)
* 空间复杂度:O(n)
*/
export function trans(s: string, n: number): string {
let res = ''
if (s.length === 0 || n === 0) return res
// 翻转
const revStrArr = s.split(' ').reverse()
const revStr = revStrArr.join(' ')
// 大小写转换
for (let i = 0; i < revStr.length; i++) {
const code = revStr[i].charCodeAt(0)
if (code >= 97 && code <= 122) {
res += revStr[i].toUpperCase()
} else if (code >= 65 && code <= 90) {
res += revStr[i].toLowerCase()
} else {
res += ' '
}
}
return res
}