zoukankan      html  css  js  c++  java
  • 字符串变形

    题目描述

    对于一个给定的字符串,我们需要在线性(也就是O(n))的时间里对它做一些变形。首先这个字符串中包含着一些空格,就像"Hello World"一样,然后我们要做的是把着个字符串中由空格隔开的单词反序,同时反转每个字符的大小写。比如"Hello World"变形后就变成了"wORLD hELLO"。

    输入描述:

    给定一个字符串s以及它的长度n(1≤n≤500)

    输出描述:

    请返回变形后的字符串。题目保证给定的字符串均由大小写字母和空格构成。
    示例1

    输入

    复制
    "This is a sample",16

    输出

    复制
    "SAMPLE A IS tHIS"

    题解:

    我们先对整个字符串反转,然后再对每个字符串反转,最后把字符大小写换一下就行了

    参考代码:

    class Transform {
    public:
    string trans(string s, int n) {
      // write code here
      if(n==0) return s;
      reverse(s.begin(),s.end());  //翻转整个字符串
      for (int i=0;i<n;i++)
      {
          int j=i;
          while(j<n && s[j]!=' ') j++;
          reverse(s.begin()+i,s.begin()+j);   //翻转不是空格之外的单词
          i=j;
      }
      string res;
      for (int i=0;i<n;i++)
      {
          if (s[i]!=' ' && s[i]<='Z' && s[i]>='A') res+=s[i]-'A'+'a';
          else if (s[i]!=' ' && s[i]>='a' && s[i]<='z') res+=s[i]-'a'+'A';
          else res+=s[i];
      }
      return res;
    }
    };
    View Code
  • 相关阅读:
    第04组(64) 需求分析报告
    第04组(64) 团队展示
    结对编程作业
    Python单元测试框架 Unittest 的简单使用方法
    第一次个人编程作业
    第09组 Alpha冲刺 总结
    Swagger 工具集
    第09组 Alpha冲刺(6/6)
    第09组 Alpha冲刺(5/6)
    第09组 Alpha冲刺(4/6)
  • 原文地址:https://www.cnblogs.com/csushl/p/11946297.html
Copyright © 2011-2022 走看看