您的位置:首页 > 编程语言

算法基础-字符移位----腾讯2017暑期实习生编程题

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


输入描述:


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


输出描述:


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


输入例子:

AkleBiCeilD



输出例子:

kleieilABCD


#include <iostream>
#include <string>
 
using namespace::std ;
 
int main() {
    string input ;
     
    while ( cin >> input ) {
        string big, little ;
         
        for ( int i = 0; i < input.size(); ++ i ) {
            if ( input[i] >= 'A' && input[i] <= 'Z' ) big.push_back( input[i] ) ;
            else little.push_back( input[i] ) ;
        }
         
        string result ;
        for ( int i = 0; i < little.size(); ++ i ) {
            result.push_back( little[i] ) ;
        }
        for ( int i = 0; i < big.size(); ++ i ) {
            result.push_back( big[i] ) ;
        }
         
        cout << result << endl ;
    }
    return 0 ;
}


第二次做:

#include <iostream>
#include <string>

using namespace::std ;

int main() {
string input ;

while ( cin >> input ) {
string l, h ;
for ( int i = 0; i < input.size(); ++ i ) {
if ( input[i] >= 'A' && input[i] <= 'Z' ) h.push_back( input[i] ) ;
else if ( input[i] >= 'a' && input[i] <= 'z' ) l.push_back( input[i] ) ;
}
string result ;
for ( int i = 0; i < l.size(); ++ i ) {
result.push_back( l[i] ) ;
}
for ( int i = 0; i < h.size(); ++ i ) {
result.push_back( h[i] ) ;
}
cout << result << endl ;
}

return 0 ;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: