题解 | #字符串排序#

字符串排序

https://www.nowcoder.com/practice/5190a1db6f4f4ddb92fd9c365c944584

冒泡排序
import java.io.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) throws IOException {

        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String str = "";
        while ((str = reader.readLine()) != null) {
            char[] arr = str.toCharArray();
            int start = 0, end = arr.length - 1;
            for (int i = 0;; i++) {
                if ( !(arr[i] >= 'A' && arr[i]  <= 'Z') &&
                        !(arr[i]  >= 'a' && arr[i]  <= 'z')) continue;//跳过开头的非字母
                start = i;
                break;
            }
            for (int i = end;; i--) {
                if ( !(arr[i] >= 'A' && arr[i]  <= 'Z') &&
                        !(arr[i]  >= 'a' && arr[i]  <= 'z')) continue;//跳过尾部的非字母
                end = i;
                break;
            }

            for (int i = start; i < end; i++) {

                for (int j = start; j < end - (i - start); j++) {
                    char max = arr[j];
                    char compA = max;//保存小写,用来比较
                    if (max >= 'A' && max <= 'Z') {
                        compA += 'a' - 'A';
                    }
                    int k = j + 1;//新建一个指针寻找要比较的字母
                    while (k  <= end - (i - start) && !(arr[k]  >= 'A' && arr[k]  <= 'Z') &&
                            !(arr[k]  >= 'a' && arr[k]  <= 'z')) k++;
                    if (k  >  end - (i - start)) break;
                    char compB = arr[k];
                    if (arr[k] >= 'A' && arr[k] <= 'Z') {
                        compB += 'a' - 'A';
                    }
                    if (compB < compA) {
                        arr[j] = arr[k];
                        arr[k] = max;

                    }
                    j = k - 1;//移动指针到下次交换的位置前面




                }

            }
            System.out.println(arr);
        }
    }
}

全部评论
楼主也是天天刷题啊
点赞 回复 分享
发布于 2022-10-25 10:30 山西

相关推荐

不愿透露姓名的神秘牛友
11-27 10:52
点赞 评论 收藏
分享
object3:开始给部分🌸孝子上人生第一课了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务