如何在电脑上建立网站/谷歌下载
本专栏目录
蓝桥杯算法竞赛大纲
数论相关(Java)
枚举相关(Java)
对象排序(Java)
字符串相关(Java)
排序相关算法(Java)
记忆化搜索(Java)
树论相关(Java)
图论相关(Java)
堆(Java)
贪心(Java)
文章目录
- 全排
- 最长对称字符串
全排
package 枚举;public class _全排 {static int[] arr = new int[10];public static void main(String[] args) {// 1.fn(0);// 2.for (int i = 1; i <= 9; i++) {for (int j = 1; j <= 9; j++) {if (i==j) continue;for (int k = 1; k <= 9; k++) {if (i==k||j==k) continue;// .....// check操作}}}}// 全排模板public static void fn(int k){if(k==arr.length){// 进行check操作check();return;}int t;for (int i = k; i < arr.length; i++) {t = arr[i];arr[i] = arr[k];arr[k] = t;// 此处可以提前剪枝 {if(k==?&&???)return;t = arr[i];arr[i] = arr[k];arr[k] = t;}// 递归fn(k+1);// 回溯t = arr[i];arr[i] = arr[k];arr[k] = t;}}public static void check(){// check操作}
}
最长对称字符串
package 枚举;import java.util.Scanner;public class _最长对称字符串 {public static void main(String[] args) {Scanner scan = new Scanner(System.in);String line = scan.nextLine();// 可能的长度for (int k = line.length(); k >= 2; k--) {// 对称字符串开始的位置for (int st = 0; st + k - 1 <= line.length() - 1; st++) {int i=st,j = st+k-1; // 一个从头向后,一个从后向前。for (; i <= j; i++,j--) { // 对称检测if (line.charAt(i)!=line.charAt(j)){break;}}if (i>=j){ // 如果在k长度字符串存在对称,则输出。System.out.println(k);return;}}}System.out.println(1);}
}