目录
1、乒乓球框
Ⅰ、思路
Ⅱ、代码
2、查找兄弟单词
输入描述:
Ⅰ、思路
Ⅱ、代码
1、乒乓球框
乒乓球筐__牛客网 (nowcoder.com)
nowcoder有两盒(A、B)乒乓球,有红双喜的、有亚力亚的……现在他需要判别A盒是否包含了B盒中所有的种类,并且每种球的数量不少于B盒中的数量,该怎么办呢?
输入描述:
输入有多组数据。 每组数据包含两个字符串A、B,代表A盒与B盒中的乒乓球,每个乒乓球用一个大写字母表示,即相同类型的乒乓球为相同的大写字母。 字符串长度不大于10000。输出描述:
每一组输入对应一行输出:如果B盒中所有球的类型在A中都有,并且每种球的数量都不大于A,则输出“Yes”;否则输出“No”。示例1
输入
ABCDFYE CDE
ABCDGEAS CDECDE输出
Yes
No
Ⅰ、思路
使用HashMap进行一个个判断B盒中的球在A盒中是否有,然后剔除A盒的球,直到遍历完B盒中的球,B盒中所有的球在A中都有,则输出 Yes 否则输出 No。
对HashMap不了解的同学可以看看这篇文章!
HashSet和HashMap_hashset foreach_冷兮雪的博客-CSDN博客
或者使用StringBuffer,也是和HashMap一样的写法
Ⅱ、代码
HashMap
import java.util.HashMap;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while (sc.hasNext()){//多组输入
String s=sc.nextLine();
String[] ss=s.split(" ");
HashMap map1=new HashMap();//将A盒乒乓球放入HashMap中记录
for (int i=0;i
StringBuffer
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
while (in.hasNext())
{
boolean contain = true;
StringBuffer s = new StringBuffer(in.next());
char[] find = in.next().toCharArray();
for (char c : find)
{
int index = s.indexOf(String.valueOf(c));
if (index != -1)
s.deleteCharAt(index);
else
{
System.out.println("No");
contain = false;
break;
}
}
if (contain)
System.out.println("Yes");
}
}
}
2、查找兄弟单词
查找兄弟单词_牛客题霸_牛客网 (nowcoder.com)
描述
定义一个单词的“兄弟单词”为:交换该单词字母顺序(注:可以交换任意次),而不添加、删除、修改原有的字母就能生成的单词。
兄弟单词要求和原来的单词不同。例如: ab 和 ba 是兄弟单词。 ab 和 ab 则不是兄弟单词。
现在给定你 n 个单词,另外再给你一个单词 x ,让你寻找 x 的兄弟单词里,按字典序排列后的第 k 个单词是什么?
注意:字典中可能有重复单词。
数据范围: 1≤n≤1000 ,输入的字符串长度满足 1≤len(str)≤10 , 1≤k
输入描述:
输入只有一行。 先输入字典中单词的个数n,再输入n个单词作为字典单词。 然后输入一个单词x 最后后输入一个整数k
输出描述:
第一行输出查找到x的兄弟单词的个数m 第二行输出查找到的按照字典顺序排序后的第k个兄弟单词,没有符合第k个的话则不用输出。
示例1
输入:
3 abc bca cab abc 1
输出:
2 bca
示例2
输入:
6 cab ad abcd cba abc bca abc 1
输出:
3 bca
说明:
abc的兄弟单词有cab cba bca,所以输出3 经字典序排列后,变为bca cab cba,所以第1个字典序兄弟单词为bca
Ⅰ、思路
三步走
- 对n个单词升序排序
- 第n个单词和 x 相等 和 长度不一致的跳过
- 对第n个单词 和 x 的每个字符升序排序,并比较是否相等,如果相等则为兄弟单词。
Ⅱ、代码
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String s = null;
s = bf.readLine();
// 将输入的字符串分割成字符串数组
String[] words = s.split(" ");
// 待查找单词
String str = words[words.length - 2];
// 兄弟单词表里的第k个兄弟单词
int k = Integer.parseInt(words[words.length - 1]);
// 存放兄弟单词表
ArrayList broWords = new ArrayList();
// 遍历输入的单词
for (int i = 1; i 0 && k
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
ArrayList arr=new ArrayList();
String[] s1=new String[n];
for (int i=0;ik){
System.out.println(arr.get(k-1));
}
}
}
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net