- 链接:https://www.nowcoder.com/questionTerminal/2f13c507654b4f878b703cfbb5cdf3a5?f=discussion
来源:牛客网
小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一
下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子;如果不是,那么告诉她缺了多少珠子。
为方便起见,我们用[0-9]、[a-z]、[A-Z]范围内的字符来表示颜色。例如,YrR8RrY是小红想做的珠串;那么ppRYYGrrYBR2258可以买,因为包含了
全部她想要的珠子,还多了8颗不需要的珠子;ppRYYGrrYB225不能买,因为没有黑色珠子,并且少了一颗红色的珠子。
输入描述:
每个输入包含1个测试用例。每个测试用例分别在2行中先后给出摊主的珠串和小红想做的珠串,两串都不超过1000个珠子。
输出描述:
如果可以买,则在一行中输出“Yes”以及有多少多余的珠子;如果不可以买,则在一行中输出“No”以及缺了多少珠子。其间以1个空格分隔。
示例1
输入
ppRYYGrrYBR2258
YrR8RrY
输出
Yes 8
import java.util.*;
public class Main{
public static void main(String args[]){
Scanner scanner = new Scanner(System.in);
while(scanner.hasNext()){
String str1 = scanner.next();
String str2 = scanner.next();
LinkedList<Character> list = new LinkedList<Character>();
for(int i = 0; i < str1.length(); i++){
char ch = str1.charAt(i);
list.add(ch);
}
int count = 0;
for(int i = 0; i < str2.length(); i++){
char ch = str2.charAt(i);
for(int j = 0; j < list.size(); j++){
if(ch == list.get(j)){
list.remove(j);
count++;
break;
}
}
}
if(count == str2.length())
System.out.println("Yes "+ (str1.length()-count));
else{
System.out.println("No "+ (str2.length()-count));
}
}
scanner.close();
}
}
- 链接:https://www.nowcoder.com/questionTerminal/ed85a09f0df047119e94fb3e5569855a
来源:牛客网
有两个用链表表示的整数,每个结点包含一个数位。这些数位是反向存放的,也就是个位排在链表的首部。编写函数对这两个整数求和,并用链表形式返回结果。
给定两个链表ListNode* A,ListNode* B,请返回A+B的结果(ListNode*)。
测试样例:
{1,2,3},{3,2,1}
返回:{4,4,4}
import java.util.*;
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Plus {
public ListNode plusAB(ListNode a, ListNode b) {
// write code here
ListNode resultHead = new ListNode(-1);
ListNode resultCurrent = resultHead;
int addToNextDigit = 0;
while (a != null || b != null || addToNextDigit != 0) {
int aVal = a != null ? a.val : 0;
int bVal = b != null ? b.val : 0;
int sum = aVal + bVal + addToNextDigit;
int nodeDigit = sum % 10;
addToNextDigit = sum / 10;
resultCurrent.next = new ListNode(nodeDigit);
resultCurrent = resultCurrent.next;
a = a != null ? a.next : null;
b = b != null ? b.next : null;
}
return resultHead.next;
}
}