当前位置:   article > 正文

JAVA顺序表相关习题1

JAVA顺序表相关习题1

1.笔试题:cvte

str1 :welcome to cvte
str2:come
描述:删除第一个字符串当中出现的所有的第二个字符串的字符!结果:wlt vt
要求 用ArrayList完成!

  1. public class Test {
  2. public static List<Character> findSameWords(String u1, String u2){
  3. List<Character> list=new ArrayList<>();
  4. for(int i=0;i<u1.length();i++){
  5. char ch=u1.charAt(i);
  6. if(!u2.contains(ch+"")){
  7. list.add(ch);
  8. }
  9. }
  10. return list;
  11. }
  12. public static void main(String[] args) {
  13. String u1="welcome to shanghai";
  14. String u2="welcome";
  15. System.out.println(findSameWords(u1,u2));
  16. }
  17. }

2.笔试题:杨辉三角

. - 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。icon-default.png?t=N7T8https://leetcode.cn/problems/pascals-triangle/description/

第一行是1

从第二行开始,第一个和最后一个都是1

中间列额外处理

  1. public static List<List<Integer>> getTriangle(Integer row){
  2. List<List<Integer>> list=new ArrayList<>();
  3. //先处理第一行
  4. List<Integer> list1=new ArrayList<>();
  5. list1.add(1);
  6. list.add(list1);
  7. //处理剩余的行数
  8. //从第二行开始
  9. for(int i=1;i<row;i++){
  10. //我们获取当前列首先要得到上一列
  11. List<Integer> list3=list.get(i-1);
  12. //用当前列展示
  13. List<Integer> list2=new ArrayList<>();
  14. //第一个数字为1
  15. list2.add(1);
  16. //处理中间的部分
  17. for(int j=1;j<i;j++){
  18. list2.add(list3.get(j-1)+list3.get(j));
  19. }
  20. //最后一个数字为1
  21. list2.add(1);
  22. //最后把这一整行插入杨辉三角
  23. list.add(list2);
  24. }
  25. return list;
  26. }

 

3.实现简单的洗牌算法

  1. public class Card {
  2. public int rank; // 牌面值
  3. public String suit; // 花色
  4. public Card(int rank, String suit) {
  5. this.rank = rank;
  6. this.suit = suit;
  7. }
  8. @Override
  9. public String toString() {
  10. return suit+rank;
  11. }
  12. }

//买了一副牌

  1. public class CardList {
  2. //花色
  3. public static final String[] SUITS = {"♠", "♥", "♣", "♦"};
  4. //买一幅牌
  5. private static List<Card> buyDeck() {
  6. List<Card> oneCard=new ArrayList<>(52);
  7. for(int i=0;i<SUITS.length;i++){
  8. for(int j=1;j<=13;j++){
  9. Card card=new Card(j,SUITS[i]);
  10. oneCard.add(card);
  11. }
  12. }
  13. return oneCard;
  14. }
  15. /*//洗牌
  16. private static List<Card> shuffle(List<Card> cards){
  17. Random random=new Random();
  18. //从后往前开始随机
  19. for(int i=cards.size()-1;i>0;i--){
  20. int index=random.nextInt(i);
  21. swap(cards,i,index);
  22. }
  23. return cards;
  24. }*/
  25. //洗牌
  26. private static void shuffle(List<Card> cards){
  27. Random random=new Random();
  28. //从后往前开始随机
  29. for(int i=cards.size()-1;i>0;i--){
  30. int index=random.nextInt(i);
  31. swap(cards,i,index);
  32. }
  33. }
  34. public static void main(String[] args) {
  35. List<Card> buyCard=buyDeck();
  36. System.out.println("买了一副牌"+buyCard);
  37. shuffle(buyCard);
  38. System.out.println("开始洗牌"+buyCard);
  39. }
  40. public static void swap(List<Card> cards,Integer i,Integer index){
  41. //中间变量
  42. Card tmp=cards.get(index);
  43. //开始进行交换
  44. cards.set(index,cards.get(i));
  45. cards.set(i,tmp);
  46. }
  47. }

//发牌操作

  1. //发牌操作
  2. List<List<Card>> card=new ArrayList<>();
  3. List<Card> user1=new ArrayList<>();
  4. List<Card> user2=new ArrayList<>();
  5. List<Card> user3=new ArrayList<>();
  6. card.add(user1);
  7. card.add(user2);
  8. card.add(user3);
  9. for(int j=0;j<5;j++){//每个人连续拿五张牌
  10. for(int i=0;i<3;i++){
  11. Card card1=buyCard.remove(0);
  12. card.get(i).add(card1);
  13. }
  14. }
  15. System.out.println("A获得的牌"+card.get(0));
  16. System.out.println("B获得的牌"+card.get(1));
  17. System.out.println("C获得的牌"+card.get(2));

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/518481
推荐阅读
相关标签
  

闽ICP备14008679号