给定一个字符串s和一个包含n个字符串的数组strs,按照以下规则对数组进行排序: 规则1:首先,将字符串数组中的每个字符串都按照以下方式进行变换:将字符串中的每个字符替换为该字符在字符串s中出现的次数,并将这些数字连接起来得到一个新的字符串。例如,如果s是"apple",而字符串"plap"变换后会成为"2112" 规则2:对经过规则1变换后的字符串按照字典序从小到大进行排序,并返回结果 请编写一个程序来执行上述排序规则 java语言; 示例: 输入: plap,aple,elpa,pale 输出:el
解析:首先需要实现一个方法,将字符串中的每个字符替换为该字符在字符串s中出现的次数,并将这些数字连接起来得到一个新的字符串。然后对经过规则1变换后的字符串按照字典序从小到大进行排序,并返回结果。
代码如下:
```java
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
创作工场
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。
点击这里>>使用🔥专业版,更聪明、更完整、更原创!