NC339. 翻转单词
描述
示例1
输入:
"I am a programmer"
输出:
"I ma a remmargorp"
示例2
输入:
"nowcoder"
输出:
"redocwon"
C++ 解法, 执行用时: 5ms, 内存消耗: 1032KB, 提交时间: 2022-08-06
static const auto io_sync_off = [](){ std::ios::sync_with_stdio(false); std::cout.tie(nullptr); std::cin.tie(nullptr); return nullptr; }(); class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param str string字符串 * @return string字符串 */ void reverse(string &str,int start,int end) { for(int i=start,j=end;i<j;i++,j--) swap(str[i],str[j]); } string reverseWord(string str) { // write code here for(int i=0;i<str.size();i++) { int j=i; while(str[j]!=' '&&j<str.size()) j++; reverse(str,i,j-1); i=j; } return str; } };
C++ 解法, 执行用时: 5ms, 内存消耗: 1052KB, 提交时间: 2022-07-23
static const auto io_sync_off = [](){ std::ios::sync_with_stdio(false); std::cout.tie(nullptr); std::cin.tie(nullptr); return nullptr; }(); class Solution { public: void reverse(string& str,int start,int end) { for(int i=start,j=end;i<j;i++,j--) swap(str[i],str[j]); } string reverseWord(string str) { for(int i=0;i<str.size();i++) { int j=i; while(str[j]!=' '&&j<str.size()) j++; reverse(str,i,j-1); i=j; } return str; } };
C 解法, 执行用时: 6ms, 内存消耗: 780KB, 提交时间: 2022-06-25
char* reverseWord(char* str ) { int a = 0, b = 0, h = strlen(str); while (b < h) { a = b; while (b < h && str[b] != ' ') ++b; int i = a, j = b - 1; while (i < j) { int k = str[i]; str[i] = str[j]; str[j] = k; i++; j--; } ++b; } return str; }
C 解法, 执行用时: 6ms, 内存消耗: 780KB, 提交时间: 2022-04-23
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param str string字符串 * @return string字符串 * * C语言声明定义全局变量请加上static,防止重复定义 */ /*void reverse(char* small, int len){ int i = 0, j = len -1; char tmp; while(i < j){ tmp = small[i]; small[i] = small[j]; small[j] = tmp; i++; j--; } } */ char* reverseWord(char* str ) { int left = 0, right = 0, n = strlen(str); while(right < n){ left = right; while(right < n && str[right] != ' ') ++right; int i = left, j = right -1; while(i<j){ int tmp = str[i]; str[i] = str[j]; str[j] = tmp; i++; j--; } ++right; } return str; }
C 解法, 执行用时: 6ms, 内存消耗: 788KB, 提交时间: 2022-06-30
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 输入: "I am a programmer" 复制 返回值: "I ma a remmargorp" 输入: "nowcoder" 复制 返回值: "redocwon" */ void reverse(char *str, int left, int right){ int temp; while(left<right){ temp=str[left]; str[left]=str[right]; str[right]=temp; left++; right--; } } char* reverseWord(char* str ) { // write code here int len=strlen(str); int i = 0,j=0; while(i<len){ j=i; while(j<len){ if(str[j]==' '){ break; }else{ j++; } } reverse(str,i,j-1); i=j+1; } return str; }