49 字符大小写排序

Posted 唐的糖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了49 字符大小写排序相关的知识,希望对你有一定的参考价值。

原题网址:https://www.lintcode.com/problem/sort-letters-by-case/description

描述

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

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

您在真实的面试中是否遇到过这个题?  

样例

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

挑战

在原地扫描一遍完成

标签
排序
两根指针
字符串处理
LintCode 版权所有
 
思路:
参照插入排序法,设置两根指针i、j,一个指向左侧调整好的小写字母区末位的下一个位置,另一个指向待处理区域的第一个元素。
如果待处理元素为小写字母,将其放到 i 处,i 处元素放到 j 处,i 向右移动一位,j 向右移动一位。
如果待处理元素不为小写字母,i 不动,j 向右移动一位。
 
AC代码:
class Solution {
public:
    /*
     * @param chars: The letter array you should sort by Case
     * @return: nothing
     */
    void sortLetters(string &chars) {
        // write your code here
         int n=chars.size();
     int i=0;//小写字母区末位的下一个位置;
     for (int j=0;j<n;j++)
     {
         if (chars[j]>=a&&chars[j]<=z)
         {
             swap(chars[i],chars[j]);
             i++;
         }
     }
    }
};

 

 

以上是关于49 字符大小写排序的主要内容,如果未能解决你的问题,请参考以下文章

Java排序算法 - 堆排序的代码

2021-12-24:划分字母区间。 字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。 力扣763。某大厂面试

字符串出现次数的TopK问题(NC97/考察次数Top49/难度中等)

不区分大小写的查询字符串请求参数

leetcode题解之49. 字母异位词分组

JavaScript数字数组怎么按数子大小排序