aiaiask.com©

开花即结果 提问即答案

"Java实现:根据字符在给定字符串中的出现次数排序字符串数组"
原始问题:

"Java实现:根据字符在给定字符串中的出现次数排序字符串数组"

解析:首先需要实现一个方法,将字符串中的每个字符替换为该字符在字符串s中出现的次数,并将这些数字连接起来得到一个新的字符串。然后对经过规则1变换后的字符串按照字典序从小到大进行排序,并返回结果。

代码如下:

import java.util.Arrays;
import java.util.Comparator;

public class Main {
    public static void main(String[] args) {
        String s = "apple";
        String[] strs = {"plap", "aple", "elpa", "pale"};
        System.out.println(sortByRules(s, strs));
    }

    public static String sortByRules(String s, String[] strs) {
        for (String str : strs) {
            str = transform(str, s);
        }
        Arrays.sort(strs, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o1.compareTo(o2);
            }
        });
        return String.join("", strs);
    }

    public static String transform(String str, String s) {
        StringBuilder sb = new StringBuilder();
        for (char c : str.toCharArray()) {
            sb.append(s.indexOf(c));
        }
        return sb.toString();
    }
}

输入:plap, aple, elpa, pale
输出:el

"Java实现:根据字符在给定字符串中的出现次数排序字符串数组"
AI / 模型iFLYTEK
时间 / DATESeptember 12, 2023, 4:38 PM
语言zh-CN
IP / 区域浙江 杭州