单词翻转
- C语言实现
- C++实现
- Java实现
- Python实现
💐The Begin💐点点关注,收藏不迷路💐
|
输入一个句子(一行),将句子中的每一个单词翻转后输出。
输入
只有一行,为一个字符串,不超过1000个字符。单词之间以空格隔开。
输出
翻转每一个单词后的字符串,单词之间的空格需与原文一致。
样例输入
hello world
样例输出
olleh dlrow
C语言实现
#include <stdio.h>
#include <string.h>
#define MAX_LENGTH 1000
int main() {
char sentence[MAX_LENGTH]; // 定义字符数组用于存储输入的句子,限制最大长度为1000
fgets(sentence, MAX_LENGTH, stdin); // 从标准输入读取句子,包含换行符
int len = strlen(sentence);
if (len > 0 && sentence[len - 1] == ‘\n’) { // 去除换行符
sentence[len - 1] = ‘\0’;
}
int start = 0; // 标记每个单词开始的位置
for (int i = 0; i <= len; i++) { // 遍历整个句子字符串,包含字符串结束符’\0’的位置
if (sentence[i] ==‘’ || sentence[i] == ‘\0’) { // 遇到空格或者字符串结束符,说明一个单词结束了
int end = i - 1; // 标记单词结束的位置
while (start < end) { // 对单词进行翻转操作,通过双指针法交换字符
char temp = sentence[start];
sentence[start] = sentence[end];
sentence[end] = temp;
start++;
end–;
}
start = i + 1; // 更新下一个单词开始的位置
}
}
printf(“%s\n”, sentence); // 输出翻转单词后的句子
return 0;
}
C++实现
#include <iostream
>
#include <string
>
using namespace std;
int main() {
string sentence;
getline(cin, sentence); // 从标准输入读取句子,自动去除换行符
int start = 0; // 标记每个单词开始的位置
for (size_t i = 0; i < sentence.size(); i++) { // 遍历句子字符串
if (sentence[i] ==’ ') { // 遇到空格,说明一个单词结束了
int end = i - 1; // 标记单词结束的位置
while (start < end) { // 对单词进行翻转操作,通过双指针法交换字符
swap(sentence[start], sentence[end]);
start++;
end–;
}
start = i + 1; // 更新下一个单词开始的位置
}
}
if (start < sentence.size()) { // 处理最后一个单词(如果句子末尾没有空格的情况)
int end = sentence.size() - 1;
while (start < end) {
swap(sentence[start], sentence[end]);
start++;
end–;
}
}
cout << sentence << endl; // 输出翻转单词后的句子
return 0;
}
Java实现
import java.util.Scanner;
class ReverseWords {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String sentence = scanner.nextLine(); // 从标准输入读取句子
StringBuilder reversed = new StringBuilder(); // 使用StringBuilder方便进行字符串操作和修改
int start = 0; // 标记每个单词开始的位置
for (int i = 0; i < sentence.length(); i++) {
if (sentence.charAt(i) ==’ ') { // 遇到空格,说明一个单词结束了
StringBuilder word = new StringBuilder(sentence.substring(start, i));
word.reverse(); // 对单词进行翻转操作,利用StringBuilder的reverse方法
reversed.append(word).append(" "); // 将翻转后的单词添加到结果中,并添加空格
start = i + 1; // 更新下一个单词开始的位置
}
}
if (start < sentence.length()) { // 处理最后一个单词(如果句子末尾没有空格的情况)
StringBuilder word = new StringBuilder(sentence.substring(start));
word.reverse();
reversed.append(word);
} else {
reversed.deleteCharAt(reversed.length() - 1); // 如果句子末尾有空格,删除多余的空格
}
System.out.println(reversed.toString()); // 输出翻转单词后的句子
scanner.close();
}
}
Python实现
sentence = input() # 从标准输入读取句子
words = sentence.split() # 以空格为分隔符将句子分割成单词列表
reversed_words = [word[::-1] for word in words] # 使用切片操作[::-1]对每个单词进行翻转,得到翻转后的单词列表
print(" ".join(reversed_words)) # 将翻转后的单词列表用空格连接起来并输出
💐The End💐点点关注,收藏不迷路💐
|