字符移位(C++)

题目:

小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。
你能帮帮小Q吗?

输入描述:

输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.

输出描述:

对于每组数据,输出移位后的字符串。

输入例子:

AkleBiCeilD

输出例子:

kleieilABCD

冒泡的思想

#include <iostream>
#include <string>
using namespace std; 
int main()
{
    string s;
    while(cin>>s)
    {
        int l=s.size();
        int up=0;
        int low=0;
        //这个是为了减少冒泡的次数
        for(int i=0; i<l; ++i)
        {
            if(s[i]>='a'&&s[i]<='z')
            {
                ++low;
            }
            else if(s[i]>='A' &&s[i]<='Z')
            {
                ++up;
            }
        }//end of for
        for(int i=l-1; i>=low; --i)
        {
            for(int j=0; j<=i; ++j)
            {
                if(s[j]>='A'&&s[j]<='Z'&&s[j+1]>='a'&&s[j+1]<='z')
                {
                    char t=s[j];
                    s[j]=s[j+1];
                    s[j+1]=t;
                }
            }
        }
        cout<<s<<endl;
    }
    return 0;
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,987评论 19 139
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,270评论 0 4
  • 《裕语言》速成开发手册3.0 官方用户交流:iApp开发交流(1) 239547050iApp开发交流(2) 10...
    叶染柒丶阅读 27,872评论 5 19
  • 在c语言中,字符串是用字符数组来存储的(并不像c++或者java等语言中有单独的string类型), 存放时在字符...
    朱森阅读 1,604评论 0 2
  • 现在某个文件夹下面使用pod spec create ManageLocalCode就会在那个库下面建立一个非常完...
    小朋友石榴阅读 679评论 0 1