首页 > 代码库 > 剑指offer (42) 单词翻转
剑指offer (42) 单词翻转
题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符顺序不变
题解分析:
两次翻转:
第一次翻转整个句子
第二次解析出每个单词并将单词翻转
void reverse(char* first, char* last){ assert(first != NULL && last != NULL); while (first < last) { char temp = *first; *first = *last; *last = temp; ++first; --last; }}void reverseTotal(char* str){ assert(str != NULL); char* first = str; char* last = str; while (*last != ‘\0‘) { ++last; } --last; reverse(first, last); first = str; last = str; // 以空格为分隔符解析单词 while (*first != ‘\0‘) { if (*first == ‘ ‘) { ++first; ++last; } else if (*last == ‘ ‘ || *last == ‘\0‘) { reverse(first, --last); ++last; first = last; } else { ++last; } }}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。