zoukankan      html  css  js  c++  java
  • 腾讯2017暑期实习编程题2

    题目描述:

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


    输入描述 :

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

    输出描述 :

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


    输入例子1 :
    AkleBiCeilD

    输出例子1 :
    kleieilABCD

    解题思路:

      将大写字母后置就行,也可以用冒泡排序法。

    代码实现:

      

    #include<iostream>
    #include <string>
    
    
    using namespace std;
    
    
    int main()
    {
    	string s;
    	while (cin >> s)
    	{
    		size_t n = s.size();
    		int uper = 0;
    		for (auto a : s)//统计大写字母个数,
    			if (a <= 'Z'&&a >= 'A')
    				uper++;
    		for(int i = 0;i<n;)
    		{
    			if (s[i] <= 'Z'&&s[i] >= 'A')//将大写字母向后挪
    			{
    				char c = s[i];
    				for (int j = i; j < n - 1; ++j)
    					s[j] = s[j + 1];
    				s[n - 1] = c;
    				if (--uper == 0)
    					break;
    			}
    			else
    				i++;
    			
    		}
    		cout << s << endl;
    	}
    	system("pause");
    	return 0;
    }
    

      

      

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

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


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

    输入例子1 :AkleBiCeilD
    输出例子1 :kleieilABCD

  • 相关阅读:
    数组名与指向数组的指针
    如何实现带可变长参数的函数
    assert()的使用
    参数入栈的顺序以及栈/堆的生长顺序
    指向函数的指针
    各变量入栈顺序
    数组与指针
    C中空指针、NULL与0
    C中为什么不能用==比较字符串?
    在命令行窗口中输入EOF
  • 原文地址:https://www.cnblogs.com/zzw1024/p/10973990.html
Copyright © 2011-2022 走看看