翻转单词的顺序
来源:互联网 发布:ipad 家长控制软件 编辑:程序博客网 时间:2024/04/28 10:53
问题:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和和普通字母一样处理。例如输入字符串"I am a student",则输出".student a am I"
算法思想:翻转两次就够了,第一次翻转整个句子得到"tneduts a ma I" ;第二次翻转每个单词得到".student a am I"
详细的实现代码如下:
char* ReverseSentence(char *pData){ if(pData == NULL) return NULL; char *pBegin = pData; char *pEnd = pData; while(*pEnd != '\0') pEnd ++; pEnd--; // 翻转整个句子 Reverse(pBegin, pEnd); // 翻转句子中的每个单词 pBegin = pEnd = pData; while(*pBegin != '\0') { if(*pBegin == ' ') { pBegin ++; pEnd ++; } else if(*pEnd == ' ' || *pEnd == '\0') { Reverse(pBegin, --pEnd); pBegin = ++pEnd; } else { pEnd ++; } } return pData;}// ====================测试代码====================void Test(char* testName, char* input, char* expectedResult){ if(testName != NULL) printf("%s begins: ", testName); ReverseSentence(input); if((input == NULL && expectedResult == NULL) || (input != NULL && strcmp(input, expectedResult) == 0)) printf("Passed.\n\n"); else printf("Failed.\n\n");}// 功能测试,句子中有多个单词void Test1(){ char input[] = "I am a student."; char expected[] = "student. a am I"; Test("Test1", input, expected);}// 功能测试,句子中只有一个单词void Test2(){ char input[] = "Wonderful"; char expected[] = "Wonderful"; Test("Test2", input, expected);}// 鲁棒性测试void Test3(){ Test("Test3", NULL, NULL);}// 边界值测试,测试空字符串void Test4(){ Test("Test4", "", "");}// 边界值测试,字符串中只有空格void Test5(){ char input[] = " "; char expected[] = " "; Test("Test5", input, expected);}int _tmain(int argc, _TCHAR* argv[]){ Test1(); Test2(); Test3(); Test4(); Test5(); return 0;}
0 0
- 翻转单词的顺序
- 翻转单词的顺序
- 翻转单词的顺序列
- 翻转句子中单词的顺序
- 翻转句子中单词的顺序
- 翻转句子中单词的顺序
- 翻转句子中单词的顺序
- 翻转句子中单词的顺序
- 翻转句子中单词的顺序
- 10.翻转句子中单词的顺序
- 翻转句子中单词的顺序
- 10、翻转句子中单词的顺序
- 翻转句子中单词的顺序
- 翻转句子中单词的顺序
- 翻转句子中单词的顺序
- 翻转句子中单词的顺序
- 翻转句子中单词的顺序。
- 10、翻转句子中单词的顺序
- js获取url传递参数,js获取url?号后面的参数
- LeetCode #357 - Count Numbers with Unique Digits - Medium
- 数字签名和数字证书
- tomcat startup.bat运行闪退解决方案
- 搭建企业Hbase
- 翻转单词的顺序
- 【例题】【高斯消元(异或)】
- Wampserver图标黄色解决
- 爬一爬xxx学校的教务网站
- 字符串倒序
- Java多线程设计(三)线程安全问题
- jQuery可见性过滤器
- 微信公众号--接收信息
- crc8 校验代码