首页 > 试题广场 >

翻转单词

[编程题]翻转单词
  • 热度指数:1355 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个字符串,请你把字符串中所有用空格隔开的单词翻转,保留原有的空格和单词顺序

数据范围:字符串长度满足 , 字符串中仅包含小写英文字母和空格
示例1

输入

"I am a programmer"

输出

"I ma a remmargorp"
示例2

输入

"nowcoder"

输出

"redocwon"
package main
import "strings"

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param str string字符串 
 * @return string字符串
*/
func reverseWord( str string ) string {
    arr:=strings.Split(str," ")
    for i,s:=range arr{
        arr[i]=reverse(s)
    }
    return strings.Join(arr," ")
}

func reverse(s string)string{
    arr:=strings.Split(s,"")
    i,j:=0,len(s)-1
    for i<j{
        arr[i],arr[j]=arr[j],arr[i]
        i++
        j--
    }
    return strings.Join(arr,"")
}

发表于 2023-03-09 12:03:47 回复(0)
class Solution:
    def reverseWord(self, str: str) -> str:
        # write code here

        # Solution1:只能保证单词间只存在一个空格的情况
        # m = re.findall(r'\w+',str)
        # count = len(m)
        # for i in range(0,count):
        #     m[i] = m[i][::-1]
        # return " ".join(m)

        res = []                # 存储输出后的字符串
        tempStr = ""            # 零时字符串对单词进行处理
        n = len(str)            # 字符串长度
        for i in range(0, n):
            if str[i] != " ":               # 当当前字符为字母时,存入零食变量tempStr
                tempStr += str[i]
                if i == n - 1:
                    tempStr = tempStr[::-1]
                    res.append(tempStr)
            else:
                tempStr = tempStr[::-1]
                res.append(tempStr)
                tempStr = ""
                res.append(str[i])
        return "".join(res)

发表于 2022-09-28 11:18:50 回复(0)
class Solution:
    def reverseWord(self , str: str) -> str:
        # write code here
        return ' '.join(list(map(lambda x:x[::-1], str.split(' '))))

发表于 2022-07-09 00:00:36 回复(0)
class Solution:
    def reverseWord(self , str: str) -> str:
        # write code here
        l = str.split(' ')
        return ' '.join([w[::-1] for w in l])

发表于 2022-04-22 16:26:31 回复(0)