Lintcode: Sort Letters by Case
6109 단어 code
Given a string which contains only letters. Sort it by lower case first and upper case second.
Note
It's not necessary to keep the original order of lower-case letters and upper case letters.
Example
For "abAcD", a reasonable answer is "acbAD"
Challenge
Do it in one-pass and in-place.
Two Pointers:
1 public class Solution {
2 /**
3 *@param chars: The letter array you should sort by Case
4 *@return: void
5 */
6 public void sortLetters(char[] chars) {
7 //write your code here
8 if (chars==null || chars.length==0) return;
9 int l=0, r=chars.length-1;
10 while (true) {
11 while (l<r && isLower(chars, l)) {
12 l++;
13 }
14 while (l<r && isUpper(chars, r)) {
15 r--;
16 }
17 if (l == r) break;
18 swap(chars, l, r);
19 }
20 }
21
22 public boolean isLower(char[] chars, int index) {
23 if (chars[index]>='a' && chars[index]<='z') return true;
24 else return false;
25 }
26
27 public boolean isUpper(char[] chars, int index) {
28 if (chars[index]>='A' && chars[index]<='Z') return true;
29 else return false;
30 }
31
32 public void swap(char[] chars, int l, int r) {
33 char temp = chars[l];
34 chars[l] = chars[r];
35 chars[r] = temp;
36 }
37 }
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
소스 코드가 포함된 Python 프로젝트텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.