zoukankan      html  css  js  c++  java
  • lintcode-49-字符大小写排序

    49-字符大小写排序

    给定一个只包含字母的字符串,按照先小写字母后大写字母的顺序进行排序。

    注意事项

    小写字母或者大写字母他们之间不一定要保持在原始字符串中的相对位置。

    样例

    给出"abAcD",一个可能的答案为"acbAD"

    挑战

    在原地扫描一遍完成

    标签

    LintCode 版权所有 字符串处理 排序 两根指针

    思路

    定义两个指针low和high,low从左至右遍历字符串,high从右自左遍历字符串,
    1.当low指向大写字母时,停止遍历;否则向右继续遍历
    2.当high指向小写字母时,停止遍历;否则向左继续遍历
    3.当low<high时,交换2个指针指向的内容,low++,high--
    4.当low<high时,继续步骤1

    code

    class Solution {
    public:
        /** 
         * @param chars: The letters array you should sort.
         */
        void sortLetters(string &letters) {
            // write your code here
            int low = 0, high = letters.size()-1;
    
            while(low < high) {
                while(letters[low]<='z' && letters[low]>='a') {
                    low++;
                }
                while(letters[high]<='Z' && letters[high]>='A') {
                    high--;
                }
                if(low < high) {
                    char temp = letters[low];
                    letters[low] = letters[high];
                    letters[high] = temp;
                    low++;
                    high--;
                }
            }
        }
    };
    
  • 相关阅读:
    Hive学习笔记记录
    Hadoop学习笔记记录
    python学习笔记记录
    2018高级软件工程——助教总结
    Week3 第二次结对编程
    Week2 第一次结对编程
    Week1 博客作业
    最后一周总结
    阅读和提问3
    个人项目 案例分析
  • 原文地址:https://www.cnblogs.com/libaoquan/p/7084765.html
Copyright © 2011-2022 走看看