• 算法题:给定一个字符串,字符串中包含一些空格,将字符串中由空格隔开的单词反序,并反转每个字符的大小写。


    神策算法题

    题目描述:对于一个长度为 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 = [] 
        // 把字符串转换成字符串数组,并反转['World', 'Hello']
        var s = n.split(' ').reverse()
        // 将s中的每一个字符串转换成字符串数组
        var ss = []
        //[['W', 'o', 'r','l', 'd'], ['H','e', 'l', 'l', 'o']]
        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++){
                // 这里需要将ss[i]变成字符串,查看字符串ss[i]中j的Unicode值
                unicodeNum = ss[i].join("").charCodeAt(j)
                // 如果是小写,转换成大写,并添加到result数组中
                if (122 >= unicodeNum && unicodeNum >= 97){
                    result.push(ss[i][j].toUpperCase())
                }
                // 如果是大写,转换成小写,并添加到result数组中
                if(65 <= unicodeNum && unicodeNum <= 90){
                    result.push(ss[i][j].toLowerCase())
                }
            }
            // 每个单词之后加一个空格
            //['w', 'O', 'R', 'L','D', ' ', 'h', 'E','L', 'L', 'O', ' ']
            result.push(" ")
        }
        // 遍历完成之后,将数组最后一个空格元素删掉。
        // pop()方法用于删除数组的最后一个元素并返回删除的元素。打印的话会打印删除元素。
        result.pop()
        // 返回字符串格式
        return result.join("")
    }
    
    console.log(ans(n))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
  • 相关阅读:
    Redis企业级问题及解决方案
    一文读懂什么是云原生|推荐收藏
    查询快递单号物流,导出详情物流到表格
    随笔
    宝塔防火墙必要的快速操作指令
    [Linux] 常用命令--文件操作grep/nl/more/less/head tail/set
    LabVIEW中管理项目
    .NET指定图片地址下载并转换Base64字符串
    SPI技术实现对比Java SPI、Spring SPI、Dubbo SPI
    BAT大厂面试的100道考题【算法、源码、架构、中间件、设计模式、网络、项目】,过60分的不到10%
  • 原文地址:https://blog.csdn.net/XreqcxoKiss/article/details/126315325