码迷,mamicode.com
首页 > 编程语言 > 详细

49 字符大小写排序

时间:2018-05-28 21:48:20      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:solution   code   c代码   字符   btn   down   ant   active   大小写   

原题网址: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 字符大小写排序

标签:solution   code   c代码   字符   btn   down   ant   active   大小写   

原文地址:https://www.cnblogs.com/Tang-tangt/p/9102376.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!