当前位置: 首页 > news >正文

程序员面试题100题第07题——翻转句子中单词的顺序

题目:

输入一个英文句子,反转句子中单词的顺序,但是单词内字符顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字幕一样处理。

分析:

首先反转句子,再逐个单词反转。

代码:

注意while循环中对指针的操作;

注意const在此处的用处;程序员面试题100题第21题——左旋转字符串

char* ReverseString(char * const pStart, char * const pEnd)//反转字符串
{
    char *pS=pStart;
    char *pE=pEnd;

    if(pS != NULL && pE != NULL)
    {
        char temp;
        while(pS <= pE)
        {
            temp=*pS;
            *pS=*pE;
            *pE=temp;
            pS++;
            pE--;
        }
    }
    return pStart;
}

 

char* ReverseSentence(char* const pSentence)
{
    if(pSentence==NULL)
    {
        return NULL;
    }

    char* pBegin=pSentence; 
    char* pEnd=pSentence; 
    char* pTemp=pSentence;

    while(*pEnd != '\0')//注意*号 最容易遗漏*
    {
        pEnd++;
    }
    pEnd--;//注意
    ReverseString(pBegin, pEnd);

    pBegin=pSentence;
    pEnd=pSentence;

    while(*pBegin != '\0')//*pBegin 最容易遗漏*
    {
        if(*pBegin ==' ')//开始为空格
        {
            pBegin++;
            pEnd++;
            continue;
        }else if(*pEnd == ' ' ||*pEnd =='\0')
        {
            ReverseString(pBegin, --pEnd);
            pBegin=++pEnd;
        }else{
            pEnd++;
        }
    }
    return pSentence;
}

转载于:https://www.cnblogs.com/zjhnl/archive/2012/10/02/2710540.html

相关文章:

  • 算法导论 (Thomas H.Cormen / Charles E.Leiserson / Ronald L.Rivest / Clifford Stein 著)
  • YON
  • Win10 UWP开发:摄像头扫描二维码/一维码功能
  • 疯狂java学习笔记1006---Scanner获取键盘输入
  • 【译】高阶函数:利用Filter、Map和Reduce来编写更易维护的代码
  • awk中的多字符分隔符转义问题
  • ajax跨域
  • 告别.NET生成报表统计图的烦恼 (转)
  • 阿里云首度公布策略无意布局云基础设施
  • TCP keepAlive
  • underscorcejs集合2(详情http://www.bootcss.com/p/underscore/#collections)
  • 修改 Linux /etc/profile 以后如何生效
  • 排序功能实现 jQuery实现排序 上移 下移
  • 细说WCF中的会话模式
  • 回声状态网络(ESN)基础教程
  • 【知识碎片】第三方登录弹窗效果
  • 08.Android之View事件问题
  • bootstrap创建登录注册页面
  • CSS 提示工具(Tooltip)
  • Cumulo 的 ClojureScript 模块已经成型
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • Material Design
  • spring-boot List转Page
  • Vue2 SSR 的优化之旅
  • XML已死 ?
  • 对JS继承的一点思考
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 协程
  • 学习笔记:对象,原型和继承(1)
  • 一个SAP顾问在美国的这些年
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • 积累各种好的链接
  • 整理一些计算机基础知识!
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • #etcd#安装时出错
  • #Linux(权限管理)
  • #stm32驱动外设模块总结w5500模块
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (Forward) Music Player: From UI Proposal to Code
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (ZT)出版业改革:该死的死,该生的生
  • (分布式缓存)Redis哨兵
  • (转)Oracle 9i 数据库设计指引全集(1)
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .Net Redis的秒杀Dome和异步执行
  • .net web项目 调用webService
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth
  • @reference注解_Dubbo配置参考手册之dubbo:reference
  • @select 怎么写存储过程_你知道select语句和update语句分别是怎么执行的吗?
  • [20170713] 无法访问SQL Server