2018 51信用卡春招后端开发实习题解

第一题:
/*
 *输入一串字符,判断第二个字符串的字符是否都存在于第一个字符串,返回true,否则false,两个串中间有;号连接
     如输入:   
  ABCNB51;51NB     
    输出:true
 */
import java.util.*;
public class StringJudge {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while(sc.hasNext()) {
			String str = sc.next();
			String[] strArr = str.split(";");
			String s1 = strArr[0];
			String s2 = strArr[1];
			System.out.println("s1:" + s1 + " s2:" + s2);
			boolean flag = true;
			for(int i = 0;i < s2.length();i ++) {
				char c = s2.charAt(i);
				if(!s1.contains(c + "")) {
					flag = false;
					break;
				}
			}
			System.out.println(flag);
		}
	}
}
第二题:
/*
 * 一堆红、绿、蓝三种颜色的球,按照红绿蓝的顺序进行排序
 */
import java.util.Scanner;
public class RGBSort{
    public static void main(String[] args){
        Scanner s = new Scanner(System.in);
        while(s.hasNext()) {
	        StringBuilder sb = new StringBuilder(s.next());
	        int pr = 0; //记录红球的指针
			int pg = 0;	//记录绿球的指针,当前指针
			int pb = sb.length() - 1; //记录蓝球的指针
			while(pg <= pb) {
				if(sb.charAt(pg) == 'R') {
					swap(sb, pr, pg);
					pr ++;
					pg ++;
				}
				else if(sb.charAt(pg) == 'G') {
					pg ++;
				}
				else {
					swap(sb, pg, pb);	//这个地方只有pb--,而没有pg++,
					pb --;				//是因为,pg、pb交换过后,pg指向的有可能是红球,所以不能pg++,要等待下一次判断					
				}
			}
			System.out.println(sb.toString());
        }
    }
    
    public static void swap(StringBuilder sb, int p1, int p2) {
		char c = sb.charAt(p1);
		sb.setCharAt(p1, sb.charAt(p2));
		sb.setCharAt(p2, c);
	}
}
第三题:
/*打印出一串序列中出现次数最多的那个单词
  单词之间是空格
*/
import java.util.*;

public class FindMaxCountWord {
	public static void main(String[] args){
        Scanner s = new Scanner(System.in);
        while(s.hasNext()) {
        	String str = s.nextLine();
        	String[] sa = str.split(" ");
        	HashMap<String, Integer> map = new HashMap<String, Integer>();
        	for(int i = 0;i < sa.length;i ++) {
        		String key = sa[i];
        		if(map.containsKey(key)) {
        			int value = map.get(key);
        			value ++;
        			map.put(key, value);
        		}
        		else {
        			map.put(key, 1);
        		}
        	}
        	int max = Collections.max(map.values());
        	//System.out.println(max);
        	for(int i = 0;i < sa.length;i ++) {
        		String key = sa[i];        		
        		if(map.get(key) == max) {
        			System.out.println(key);
        			break;
        		}
        	}
        }
	}
}

猜你喜欢

转载自blog.csdn.net/zhou15755387780/article/details/80650661