今天给大家分享两个java中简单的算法题。
1丶打印最长回文串,例如输入“abccccdd”,输出7,因为可以构造的最长回文串是“dccaccd”。
public class Test1 {
public static int longestPalindrome(String s){
int[] freq = new int [256];
int count = 0;
for(char ch : s.toCharArray()){
freq[ch - 'A']++;
if(freq[ch - 'A'] ==2){
count += 2;
freq[ch-'A'] = 0;
}
}
if(count <s.length())
count +=1;
return count;
}
public static void main(String[] args) {
System.out.println(longestPalindrome("abccccdd"));
}
}
2丶输入1到n数字的字符串表示:
// 1丶如果n是3的倍数,输出"Fizz";
// 2丶如果n是5的倍数,输出"Buzz";
// 3丶如果n同时是3和5的倍数,输出"FizzBuzz";
// 4丶如果都不是,输出数字本身;
public class TestFizzBuzz {
public static List<String> fizzBuzz(int n){
List<String> list = new ArrayList<>();
for (int i = 1; i <=n ; i++) {
if(i%15 ==0){
list.add("FizzBuzz");
}else if(i%3 ==0){
list.add("Fizz");
}else if(i%5 ==0){
list.add("Buzz");
}else{
list.add(String.valueOf(i));
}
}
return list;
}
public static void main(String[] args) {
System.out.println(fizzBuzz(15));
}
}