第一题:
/*
*输入一串字符,判断第二个字符串的字符是否都存在于第一个字符串,返回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;
}
}
}
}
}
2018 51信用卡春招后端开发实习题解
猜你喜欢
转载自blog.csdn.net/zhou15755387780/article/details/80650661
今日推荐
周排行