单词翻转

来源:互联网 发布:中兴软件测试面试题 编辑:程序博客网 时间:2024/05/03 02:33

输入I love you  输出you love I 


(A^T B^T)^T  -> BA  

所以先对单词翻转 I evol uoy, 再对整个字符串翻转you love I


void reverse_str(char* left, char* right){while (left < right){std::swap(*left, *right);left++;right--;}}void reverse_word(char *str){if (str == NULL) return;char *cur = str;char *wordBegin = cur;bool findingBegin = true;while (*cur){if (findingBegin){if (*cur != ' '){wordBegin = cur;findingBegin = false;}}else{if (*cur == ' '){reverse_str(wordBegin, cur - 1);findingBegin = true;}if (*(cur+1) == 0 && !findingBegin)reverse_str(wordBegin, cur);}++cur;}reverse_str(str, cur - 1);}


0 0
原创粉丝点击