zoukankan      html  css  js  c++  java
  • [面试编程题]算法基础-字符移位

    错误代码

    #include<iostream>
    #include<string>
    using namespace std;
    bool isLow(char c)
    {
        if( (c>='A') && (c<='Z'))
            return false;
        else 
            return true;
    }
    bool isCap(char c)
    {
        return !isLow(c);    
    }
    
    int main()
    {
        string s;
        while(cin>>s)
        {
            int n=s.size();
            int l=0,r=n-1;
            
            while(l<r)
            {
                while(r>=0 && isCap(s[r])) r--;//r最右边的一个小写字母
                while(l<=n-1 && isLow(s[l])) l++;//l指向最左边的大写字母
                if(l<r)
                    swap(s[l],s[r]);
                else 
                    break;
            }
            cout<<s<<endl;
        }
    }

    测试用例

    测试用例:
    hxKLAGLLzPyTxsFsrUnnSKQBHdQQrOyaEYJRgiJbHIDXFcQkFmIhPNKIBfHxXDBdKAvgZiBLVwnlxJAHmttsSJkZhSmQneNVoKoIYZRjPqsrFFaaqZbyNyeRjVKVFrCGdfycidTqbyQcpAtdRGzzBAaKoqybWMOyhrCQdwcRwQQpQavTnAbjriVwxJOrTYJVGYSWzKYeNAGqBzkJLucabNYvyVFxAGKLfqHXNttaqZfncEdTroGMzZnDbvZBBaRbJvuYIvlWrKaaGrvtyxrsCUOqxdwCrmVEeDrLKZKFJVRmrLsmbmOGUJyfdZIrFhuSwJQGRTYMLxKQNMaCavatlQIRZmFQvyWgQTVENxUcPKQCaUQbjyfaNuwoNdTBNldgrtPUcQodqsuJOdDpUczJWCZaasDdEYJkvituMHrCmZQSlRjIefVisatIUtfxBeKnHPyvWUKzRliFsYWgeXogiEgXDbfxAybwFuqFyEvjfIHEPDPKqEiGUtZhdDIDBGKpvBFyqHeEEhAToAbqHEpIdIhIGBtWjGHiQRctZxQQYkfFoWUbqZyIcjRPQBilHrnqNBzFmoRUYCSrGkawJCcOrMceegISpIpSGVjbngWVMTYtGoAlQFPFyOFAxndJZNfKDTwFIxisKTjyjchidXpYgLfoBOLriuIAHmAbQwoHBgbdUYBHlDQGZJASsHszOEPthLVnYbNqWegmONexfdsTVYHgtDmlyugefOBsqmgNDBoxkkhVHfvrYooVOyxDJQJLjYSngksbTopoPJFsKQzHePLukXyYTYCeW
    对应输出应该为:
    hxzyxssrnndryagibckmhfxdvgiwnlxmttskhmneoojqsraaqbyyejrdfycidqbycptdzzaoqybyhrdwcwpavnbjriwxrzeqzkucabvyxfqttaqfncdroznbvabvuvlraarvtyxrsqxdwrmermrsmbmyfdrhuwxaavatlmvygxcabjyfauwodldgrtcodqsudpczaasdkviturmljefisattfxenyvzlisgeogigbfxybwuqyvjfqithdpvyqehobqpdhtjictxkfobqycjilrnqzmorkawcrceegppjbngtolyxndfwxisjyjchidpgforiumbwogbdlsszthnbqegmexfdsgtmlyugefsqmgoxkkhfvrooyxjngksboposzeukyeKLAGLLPTFUSKQBHQQOEYJRJHIDXFQFIPNKIBHXDBKAZBLVJAHSJZSQNVKIYZRPFFZNRVKVFCGTQARGBAKWMOCQRQQQTAVJOTYJVGYSWKYNAGBJLNYVFAGKLHXNZETGMZDZBBRJYIWKGCUOCVEDLKZKFJVRLOGUJZIFSJQGRTYMLKQNMCQIRZFQWQTVENUPKQCUQNNTBNPUQJODUJWCZDEYJMHCZQSRIVIUBKHPWUKRFYWXEXDAFFEIHEPDPKEGUZDIDBGKBFHEEATAHEIIIGBWGHQRZQQYFWUZIRPQBHNBFRUYCSGJCOMISISGVWVMTYGAQFPFOFAJZNKDTFIKTXYLBOLIAHAQHBUYBHDQGZJASHOEPLVYNWONTVYHDOBNDBVHYVODJQJLYSTPJFKQHPLXYTYCW
    你的输出为:
    hxeykuezzsyoxspsronnbskgndjxryyaoorvgifbhkkxocgkmmqhsfegufyxlmtdgsvgdifxewnlxmgemttsqbknhhmtnezsosoldbgjoqsrwbaaqmbyuyeijrofgrpddfycidiqbyhcpctdjyzzjsaioqybxwfyhrdndwcxwylpoavtngbjrinwxbjrppgeecrczwaekroqmzkzqucabnrvylixjcyqfqbofttaqkfncxdtrocizjntbvhdpaqbbvuohvlerqaayrvtyxrsvpdqxdwhrmtieqrfjvyquwbmrysmbmxfbgyfdigrohuewgsilzvynxexftatavatlasifmejvylgmrutixvckdsaaazbjyfacuwopddusldgrtqdcoQUPNBJOTDNUNQJWCZUCQDKEYJPUNEVMHTCQZQSWRQIFZVRIQCIUMNQBKKLHPMYWUKTRRGFQYWJSXFIZEJXDUGOALRVFJFFKEZKLIHEPDPKDEEGUVZCODIDBGKUCBFGKHWEEIATYAJRHEBIBIZIGBDWZGHMQRGTZEQQYZNFXWUHLZKIGARPQBFVHYNLNBJFBGRUYCSAGNYKJCWOSMYGVJISYITSGVOJVAWVMTYTGQAQQFPFQOFARQCJZNOKDTMFIWKAKTBGRAQTGXCYFLVKBOLVRNIAHZAFQFPHBRZYUYBHIDQGZJASKHVNOEPQSLVZYJNSWHAJONVLBZATVYHKBDDXHBIKNOBPIFQNDBFXDIHVHJRJYYEVOOQDJQJLQYSHBQKSTUFTPJFPKQLHLPLGAXLYTYCKW
  • 相关阅读:
    交换函数作业
    对本课程的期望及对老师的建议
    前一半元素与后一半元素交换
    使用多线程(newSingleThreadScheduledExecutor)创建一个定时任务
    js判断是否为整数
    kafka入门及使用(不用集成spring)
    Eclipse 必须安装的几个插件
    mybatis 批量插入/批量修改的写法
    maven pom.xml中出现错误failOnMissingWebXml Dynamic Web Module 3.1 requires Java 1.7 or newer,每次update后都会回滚到1.5解决方案
    Eclipse 插件安装及相关问题解决方案(svn、spring、gradle、git)
  • 原文地址:https://www.cnblogs.com/learning-c/p/5700773.html
Copyright © 2011-2022 走看看