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


    神策算法题

    题目描述:对于一个长度为 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
  • 相关阅读:
    剧院建筑三维可视化综合管控平台提高安全管理效率
    软件测试基础篇(3)
    数据库:Hive转Presto(二)
    spring boot是如何加载Tomcat的
    c++入门(命名空间, c++输入输出, 缺省参数)
    Linux系统下如何使用NiMotionUSBCAN转换器?
    Linux:补充一些常用命令
    全球最快下载工具 XDM
    APS自动排程在制药行业的应用
    统计单词数
  • 原文地址:https://blog.csdn.net/XreqcxoKiss/article/details/126315325