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<>();//第一个数字为1list2.add(1);//处理中间的部分for(int j=1;j<i;j++){list2.add(list3.get(j-1)+list3.get(j));}//最后一个数字为1list2.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;}@Overridepublic 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));