algorithm - 重新排列字符串排列的算法。我该如何解决?
问题描述
这是一个字符串算法问题,但我不知道如何解决。请尝试松开一次。
问题
这是通过重新排列输入字符串来输出可显示字符串的问题。(即打印给定字符排列的问题)
例如,在 ab 字符串的情况下,有两个可能的字符:ab 和 ba。
输入一个字符串,该字符串中可以输入的字符为数字、大小写字母,同一个字符可以有多个字符。(但是,在输入字符串时,构成字符串(L)的字符数最多为10个(1≤L≤10))。
输出所有可以重新排列和显示的字符串,打印时排序的标准是字母和数字的字母顺序,但英文大写字母优先于英文小写字母,字母优先数字。
输入字符串时,我正在考虑检查大写/小写字母和数字的地方。检查方法必须以 ASCII 码进行。
在输出的地方,在进行重新排列时,需要按字母顺序和数字顺序进行排序,但是我不知道如何用什么样的排序方法来编码这种排序方法。
小写字母字符必须优先,字母字符必须优先于数字。大写英文字母>小写英文字母>数字
我可耻的代码
package example_1;
import java.util.Scanner;
public class example1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
for(int i =0; i < str.length(); i++) {
char check = str.charAt(i);
int iCheck = (int)check;
boolean strLengthCnk = 1 <= str.length() && str.length() <= 10;
boolean engSleCnk = 65 <= iCheck && iCheck <= 90;
boolean engCplCnk = 97 <= iCheck && iCheck <= 122;
boolean numCnk = 48 <= iCheck && iCheck <= 57;
if(!strLengthCnk) {
System.out.println("Out of range of string.");
return;
} else if(!(engSleCnk && engSleCnk)) {
System.out.println("Please enter a english");
} else if(!numCnk) {
System.out.println("Please enter a number.");
}
}
}
}
解决方案
推荐阅读
- java - 如何在 Spring Boot 中为 /error 页面返回自定义错误消息
- postgresql - 用于同时运行的查询的 Tempo 表抛出已存在错误
- c# - 警告 CS1998 此异步方法缺少“等待”运算符,正确的静音方法?
- javascript - 'setTimeout' javascript 函数不起作用的代码有什么问题?
- java - Hibernate使用多对多关系多次加载同一个实体并离开连接?
- powerbuilder - 我有一个带有一个 IN 参数和一个 OUT 参数的 Oracle 存储过程。我需要从 PowerBuilder 调用它
- flutter - Flutter 照片编辑应用调整
- reactjs - '}' 预期在 React 组件渲染方法中(使用 JSX)
- amazon-web-services - AWS SNS 主题访问策略不阻止用户订阅
- java - 错误原因:java.lang.ClassCastException: androidx.viewpager2.widget.ViewPager2 无法转换为 androidx.viewpager.widget.ViewPager