1. Poker
定义两个数组,一个数组存储扑克牌花色,另一个数组存储扑克牌(A~K),输出52张扑克牌(除大小王)
public class Poker {
定义两个数组,一个数组存储扑克牌花色,另一个数组存储扑克牌(A~K),输出52张扑克牌(除大小
//王)
♥A、♥2...
public static void main(String[] args) {
String[] suits = {"♠", "♥", "♦", "♣"};
String[] ranks = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"};
String card = "";
for(int i = 0;i < suits.length;i++){
for(int j =0;j < ranks.length;j++){
card = suits[i] + ranks[j];
System.out.println(card);
}
}
}
}
2. 有效括号
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
- 注意空字符串可被认为是有效字符串。
import java.util.Scanner;
public class Bracket {
//给定一个只包括 '(',')' 的字符串,判断字符串是否有效。\
//有效字符串需满足:
//左括号必须用相同类型的右括号闭合。
//左括号必须以正确的顺序闭合。
//注意空字符串可被认为是有效字符串。
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入只只包括 '(',')' 的字符串");
String str = sc.nextLine();
boolean result = isValidString(str);
if(result){
System.out.println("合法");
}else {
System.out.println("不合法");
}
}
public static boolean isValidString(String str) {
if(str.length() % 2 != 0){
return false;
}
int count = 0;
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c == '(') {
count++;
} else if (c == ')') {
count--;
if (count < 0) {
return false;
}
}
}
return count == 0;
}
}
3. 最长子串
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
public class Longest {
public static void main(String[] args) {
String str = "abcaefgh";
String result = subString1(str);
System.out.println(result.length());
}
public static String subString1(String str){
String max = "";
for (int start = 0; start < str.length(); start++) {
String sub = str.substring(start, start + 1);
for (int end = start + 1; end < str.length(); end++) {
String current = str.substring(end, end + 1);
if (sub.contains(current)){
if (sub.length() > max.length()) {
max = sub;
}
break;
} else{
sub += current;
}
}
}
return max;
}
}
4. 最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “” 。
package com.kfm.String.Test;/*
@CreatTime:2023-08-24 22:24
*/
public class Prefix {
public static void main(String[] args) {
//最长公共前缀
//编写一个函数来查找字符串数组中的最长公共前缀。
//如果不存在公共前缀,返回空字符串 "" 。
String[] str = {"flower","flow","fight"};
String reslt = fun(str);
System.out.println(reslt);
}
public static String fun(String[] str){
String s = "";
if (str == null || str.length == 0) {
return "";
}
int min = 0;
for(int i =0;i < str.length;i++){
if(i < str.length -1){
if(str[i].length() < str[min].length()){
min = i;
}
}
}
String mi = str[min];
count:for(int i = 0;i < str[min].length();i++){
for(int j = 0;j < str.length;j++){
if(!str[j].startsWith(mi)){
mi = mi.substring(0, mi.length()-1);
continue count;
}
}
break;
}
return mi;
}
}
5. Excel表列名称
给你一个整数 columnNumber
,返回它在 Excel 表中相对应的列名称。
public class Excel {
//给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。
// 输入:columnNumber = 701
//输出:"ZY"
public static void main(String[] args) {
int columnNumber = 2147483647;
String result = prefix(columnNumber);
System.out.println(result);
}
public static String prefix(int columnNumber){
StringBuilder sb = new StringBuilder();
while (columnNumber > 0){
//求出0-25
int remainder = (columnNumber - 1) % 26;
char digit = (char) ('A' + remainder);
sb.append(digit);
columnNumber = (columnNumber - 1) / 26;
}
//翻转字符
sb.reverse();
return sb.toString();
}
}