zoukankan      html  css  js  c++  java
  • Coursera-C程序设计进阶-编程题#1:单词翻转

    编程题#1:单词翻转

    来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)

    注意: 总时间限制: 1000ms 内存限制: 65536kB

    描述

    输入一个句子(一行),将句子中的每一个单词翻转后输出。

    输入

    只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。

    输出

    翻转每一个单词后的字符串,单词之间的空格需与原文一致 

    样例输入

    hello world

    样例输出

    olleh dlrow
    #include<iostream>
    #include<ctype.h>
    using namespace std;
    int flip(char *, int ,int );
    int main() {
        //输入 
        char str[501];
        cin.getline(str,501);
         
        int i = 0, k = 0;
        bool start_flag = true, //新单词开始标志 
             flip_flag = false; //翻转标志 
             
        char word[501] = {''};
        while(str[i]) {
            if(str[i] != ' ') {          //本来判断是否为字母,发现OJ不通过,就稍微宽松些 
                if(start_flag) {           //判断是否为单词的开始处 
                    start_flag = false;
                    flip_flag = false;
                    k = 0;                //将记录单词的字符串索引置0 
                }    
                word[k++] = str[i];
                
                    
            } else {
                start_flag = true;
                //翻转单词并输出 
                if(!flip_flag) {   //防止多空格出现重复翻转 
                    word[k] = '';      
                    flip(word,0,k-1);
                    cout << word;
                    flip_flag = true;
                }
                //输出空格 
                cout << " ";
            }
            ++i;
        }
        //最后一个单词(没有进入循环) 
        if(!flip_flag) {     
            word[k] = '';     
            flip(word,0,k-1);
            cout << word;
        }
        return 0;
    }
    //单词翻转函数 
    int flip(char *word, int start, int end) {
        if(start >= end) 
            return 0;
        char temp = word[start];
        word[start] = word[end];
        word[end] = temp;
        flip(word, ++start, --end);
        return 0;
    }


  • 相关阅读:
    org.json.JSONObject的optXXX方法
    android Fragment的数据传递
    android .9图片的制作
    android handler
    CSS中的!important属性用法
    JS中的prototype
    JavaScript 函数创建思想
    css笔记
    Frameset使用教程
    HDU 5536 Chip Factory 【01字典树删除】
  • 原文地址:https://www.cnblogs.com/tonony1/p/4772745.html
Copyright © 2011-2022 走看看