1.笔试题:cvte
str1 :welcome to cvte
str2:come
描述:删除第一个字符串当中出现的所有的第二个字符串的字符!结果:wlt vt
要求 用ArrayList完成!
public class Test {
public static List<Character> findSameWords(String u1, String u2){
List<Character> list=new ArrayList<>();
for(int i=0;i<u1.length();i++){
char ch=u1.charAt(i);
if(!u2.contains(ch+"")){
list.add(ch);
}
}
return list;
}
public static void main(String[] args) {
String u1="welcome to shanghai";
String u2="welcome";
System.out.println(findSameWords(u1,u2));
}
}
2.笔试题:杨辉三角
. - 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/pascals-triangle/description/
第一行是1
从第二行开始,第一个和最后一个都是1
中间列额外处理
public static List<List<Integer>> getTriangle(Integer row){
List<List<Integer>> list=new ArrayList<>();
//先处理第一行
List<Integer> list1=new ArrayList<>();
list1.add(1);
list.add(list1);
//处理剩余的行数
//从第二行开始
for(int i=1;i<row;i++){
//我们获取当前列首先要得到上一列
List<Integer> list3=list.get(i-1);
//用当前列展示
List<Integer> list2=new ArrayList<>();
//第一个数字为1
list2.add(1);
//处理中间的部分
for(int j=1;j<i;j++){
list2.add(list3.get(j-1)+list3.get(j));
}
//最后一个数字为1
list2.add(1);
//最后把这一整行插入杨辉三角
list.add(list2);
}
return list;
}
3.实现简单的洗牌算法
public class Card {
public int rank; // 牌面值
public String suit; // 花色
public Card(int rank, String suit) {
this.rank = rank;
this.suit = suit;
}
@Override
public String toString() {
return suit+rank;
}
}
//买了一副牌
public class CardList {
//花色
public static final String[] SUITS = {"♠", "♥", "♣", "♦"};
//买一幅牌
private static List<Card> buyDeck() {
List<Card> oneCard=new ArrayList<>(52);
for(int i=0;i<SUITS.length;i++){
for(int j=1;j<=13;j++){
Card card=new Card(j,SUITS[i]);
oneCard.add(card);
}
}
return oneCard;
}
/*//洗牌
private static List<Card> shuffle(List<Card> cards){
Random random=new Random();
//从后往前开始随机
for(int i=cards.size()-1;i>0;i--){
int index=random.nextInt(i);
swap(cards,i,index);
}
return cards;
}*/
//洗牌
private static void shuffle(List<Card> cards){
Random random=new Random();
//从后往前开始随机
for(int i=cards.size()-1;i>0;i--){
int index=random.nextInt(i);
swap(cards,i,index);
}
}
public static void main(String[] args) {
List<Card> buyCard=buyDeck();
System.out.println("买了一副牌"+buyCard);
shuffle(buyCard);
System.out.println("开始洗牌"+buyCard);
}
public static void swap(List<Card> cards,Integer i,Integer index){
//中间变量
Card tmp=cards.get(index);
//开始进行交换
cards.set(index,cards.get(i));
cards.set(i,tmp);
}
}
//发牌操作
//发牌操作 List<List<Card>> card=new ArrayList<>(); List<Card> user1=new ArrayList<>(); List<Card> user2=new ArrayList<>(); List<Card> user3=new ArrayList<>(); card.add(user1); card.add(user2); card.add(user3); for(int j=0;j<5;j++){//每个人连续拿五张牌 for(int i=0;i<3;i++){ Card card1=buyCard.remove(0); card.get(i).add(card1); } } System.out.println("A获得的牌"+card.get(0)); System.out.println("B获得的牌"+card.get(1)); System.out.println("C获得的牌"+card.get(2));