UVa 483 Word Scramble

发布时间:2026/7/10 22:56:39
UVa 483 Word Scramble 题目描述题目要求将输入文本中每个单词的字母顺序反转同时保持单词之间的顺序和空白字符不变。单词是由可打印字符组成的连续序列由空白字符分隔。输入格式输入包含若干行每行包含若干个单词由空白字符分隔。输入以文件结束符EOF\texttt{EOF}EOF终止。输出格式输出与输入相同的行数和单词顺序但每个单词内的字母顺序反转。样例输入I love you. You love me. Were a happy family.输出I evol .uoy uoY evol .em ereW a yppah .ylimaf题目分析本题的核心是逐行处理输入识别出每个单词并反转其字母顺序同时保留空白字符。算法步骤逐行读取输入。遍历行中的每个字符若字符为空白字符空格、制表符等直接输出。若字符为非空白字符则收集连续的单词字符反转后输出。输出换行。注意点标点符号如句点、逗号等被视为单词的一部分需要一起反转。单词边界由空白字符决定包括空格、制表符等。保留原始空白字符的个数和类型。复杂度分析每个字符处理一次时间复杂度O(L)O(L)O(L)LLL为输入总长度。代码实现// Word Scramble// UVa ID: 483// Verdict: Accepted// Submission Date: 2016-07-13// UVa Run Time: 0.000s//// 版权所有C2016邱秋。metaphysis # yeah dot net#includebits/stdc.husingnamespacestd;intmain(){ios::sync_with_stdio(false);string line;while(getline(cin,line)){intindex0;while(indexline.length()){if(isblank(line[index]))coutline[index];else{string block;while(indexline.length()isblank(line[index])false){blockline[index];index;}reverse(block.begin(),block.end());coutblock;continue;}index;}coutendl;}return0;}