首页 > 代码库 > 一些题目
一些题目
http://blog.csdn.net/zheng0518/article/details/39189805
- 给定一个字符串,得到这个字符串中首先出现两次的那个字符
方法一:
1 public static void main(String[] args) { 2 Scanner scanner = new Scanner(System.in); 3 String src =http://www.mamicode.com/ scanner.next(); 4 HashMap<Character,Integer> items = new HashMap<Character,Integer>(); 5 for(int i=0;i<src.length();i++){ 6 if(!items.containsKey(src.charAt(i))){ 7 items.put(src.charAt(i), 1); 8 }else{ 9 System.out.println(src.charAt(i));10 break;11 }12 }13 }
方法二:打表
1 public class Main { 2 3 public static void main(String[] args) { 4 char[] array = {‘a‘,‘s‘,‘d‘,‘a‘,‘s‘}; 5 6 if (getFirstTwiceChar(array) != -1) { 7 System.out.println(array[getFirstTwiceChar(array)]); 8 } 9 10 }11 12 public static int getFirstTwiceChar(char[] array){13 14 if (array == null || array.length < 2) {15 return -1;16 }17 /* 一个整数数组,下标表示字符的大小*/18 int[] table = new int[256];19 20 for (int i = 0; i < array.length; i++) {21 22 if(table[array[i]] == 0){23 /* 将首次出现的字符在数组中置1 */24 table[array[i]] = 1;25 } else {26 /* 字符第二次出现 */27 return i;28 }29 30 }31 return -1;32 }33 }
- 尝试在以下文本中搜索并打印出包含单词"your"(不区分大小写)的句子,并按照出现次数从高到低排序
Make yourself at home
None of your business
I will be more careful
How about going to a move?
Your life is your own affair
1 import java.util.ArrayList; 2 import java.util.Scanner; 3 4 5 public class Main { 6 7 8 public static void main(String[] args) { 9 10 Scanner input = new Scanner(System.in);11 ArrayList<String> strings = new ArrayList<>();12 13 while(input.hasNext()){14 strings.add(input.nextLine());15 }16 17 int[] counts = new int[strings.size()];18 /* 用于跟踪位置的变化 */19 int[] labels = new int[strings.size()];20 21 for (int i = 0; i < labels.length; i++) {22 labels[i] = i;23 }24 25 for (int i = 0; i < counts.length; i++) {26 counts[i] = countSubstr(strings.get(i), "your", true);27 }28 sort(counts, labels);29 for (int i = 0; i < labels.length; i++) {30 System.out.println(strings.get(labels[i]));31 }32 }33 /**34 * 冒泡排序35 * @param counts36 * @param labels37 */38 public static void sort(int[] counts, int[] labels){39 40 for(int i = counts.length-1; i > 0 ; i--){41 for(int j = 0; j < i; j++){42 /* 从高到低 */43 if (counts[j] < counts[j+1]) {44 45 int temp = counts[j];46 counts[j] = counts[j+1];47 counts[j+1] = temp;48 49 /* 跟踪位置的变化 */50 int t = labels[j];51 labels[j] = labels[j+1];52 labels[j+1] = t;53 54 }55 56 }57 }58 }59 60 public static int countSubstr(String src, String sub, boolean isIgnore) { 61 int count = 0, start = 0; 62 if (isIgnore) { 63 src =http://www.mamicode.com/ src.toLowerCase(); 64 sub = sub.toLowerCase(); 65 } 66 while ((start = src.indexOf(sub, start)) >= 0) { 67 start += sub.length(); 68 count++; 69 } 70 return count; 71 } 72 }
一些题目
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。