一、手写实现简单栈



push(x) —— 将元素 x 推入栈中。
pop() —— 删除栈顶的元素。
top() —— 获取栈顶元素。
getMin() —— 检索栈中的最小元素。示例:输入:
["MinStack","push","push","push","getMin","pop","top","getMin"]
[[],[-2],[0],[-3],[],[],[],[]]输出:
[null,null,null,null,-3,null,0,-2]解释:
MinStack minStack = new MinStack();
minStack.push(-2);
minStack.push(0);
minStack.push(-3);
minStack.getMin();   --> 返回 -3.
minStack.pop();
minStack.top();      --> 返回 0.
minStack.getMin();   --> 返回 -2.来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/min-stack

  • 自己理解编写:
public class Test02 {public static void main(String[] args) {MinStack ms=new MinStack();ms.push(12);ms.push(10);ms.push(66);ms.push(6);ms.push(88);ms.push(9);//删除栈顶元素System.out.println(Arrays.toString(ms.getStack())+"长度"+ms.getSize());System.out.println("栈顶元素;"+ms.top());ms.pop();System.out.println("栈顶元素;"+ms.top());System.out.println(Arrays.toString(ms.getStack())+"长度"+ms.getSize());System.out.println("最小值="+ms.getMin());}
}
class MinStack{public int[] getStack() {return stack;}private int[] stack;public int getSize() {return size;}private int size;
// 将元素 x 推入栈中。public void push(int num){int[] newStack=stack;stack=new int[size+1];for (int i = 0; i < size; i++) {stack[i]=newStack[i];}stack[size++]=num;// System.out.println(Arrays.toString(stack));}
//获取栈顶元素public  int top(){return stack[0];}
//删除栈顶元素public void pop(){if(size<=0){throw new IndexOutOfBoundsException("Index Out Of !!!");}size--;int[] news=new int[size];for (int i = 0; i < size; i++) {news[i]=stack[i+1];}stack=news;}
//获取最小值public int getMin(){int min=stack[0];for (int i = 0; i < size; i++) {if(min>stack[i]){min=stack[i];}}return min;}
}




九. 字符串1234…转为壹贰叁肆…

public class Test03 {public static void main(String[] args) {HashMap<String,String> hs=new HashMap<>();System.out.println("请输入数字:");String [] cr="零、壹、贰、叁、肆、伍、陆、柒、捌、玖".split("、");for (int i =0 ; i <cr.length ; i++) {hs.put(""+(i),cr[i]);}Set<String> key=hs.keySet();String str=new Scanner(System.in).next();for (int i = 0; i <str.length() ; i++) {for (String k: key) {if(String.valueOf(str.charAt(i)).equals(k)){System.out.print(hs.get(k));}}}}
}


汇总题
    一.获取当前日期,并把这个日期转化为指定格式的字符串,如:2088-08-08二.要求对"34 9 -1 78 3 22"字符串中的数值进行从小到大的排序,变成一个数值有序的字符串:-1 3 9 22 34 78三.将一个随机字符串中的所有字符升序排列,并倒序打印 字符串为"dfhwd1287sdfj"
四.编写敏感词过滤程序说明:在网络程序中,如聊天室、聊天软件等,经常需要对一些用户所提交的聊天内容中的敏感性词语进行过滤。如“性”、“色情”、“爆炸”、“恐怖”、“枪”、“军火”等,这些都不可以在网上进行传播,需要过滤掉或者用其他词语替换掉。


public class Test01 {public static void main(String[] args) {//一.获取当前日期,并把这个日期转化为指定格式的字符串,如:2088-08-08Date d=new Date();SimpleDateFormat sd=new SimpleDateFormat("yyy-MM-dd HH:mm:ss");System.out.println(sd.format(d));//二.要求对"34 9 -1 78 3 22"字符串中的数值进行从小到大的排序,变成一个数值有序的字符串:-1 3 9 22 34 78String s="34 9 -1 78 3 22";Function<String,String> fs=(x)->{String[] str1=x.split(" ");int[] num=new int[str1.length];for (int i = 0; i < str1.length; i++) {num[i]=Integer.valueOf(str1[i]);}Arrays.sort(num);String str2="";for (int i = 0; i < num.length; i++) {str2=str2+num[i]+" ";}return str2;};String[] ss1=s.split(" ");Arrays.sort(ss1, new Comparator<String>() {@Overridepublic int compare(String o1, String o2) {return Integer.parseInt(o1)-Integer.parseInt(o2);}});System.out.println(fs.apply(s));//三.将一个随机字符串中的所有字符升序排列,并倒序打印 字符串为"dfhwd1287sdfj"String str3="dfhwd1287sdfj";TreeSet<Character> tc=new TreeSet<>((c1,c2)->{return c2-c1;});for (int i = 0; i < str3.length(); i++) {tc.add(str3.charAt(i));}System.out.println(tc);//四.编写敏感词过滤程序//     说明:在网络程序中,如聊天室、聊天软件等,经常需要对一些用户所提交的聊天内容中的敏感性词语进行过滤。//       如“性”、“色情”、“爆炸”、“恐怖”、“枪”、“军火”等,这些都不可以在网上进行传播,需要过滤掉或者用其他词语替换掉。System.out.println("输入:");String x=new Scanner(System.in).next();String[] str4="性、色情、爆炸、恐怖、枪、军火".split("、");for (int i = 0; i < str4.length; i++) {if(x.contains(str4[i])){x=x.replace(x.charAt((x.indexOf(str4[i]))), '*');// System.out.println(result=x.replace(x.charAt((x.indexOf(str4[i]))), '*'));}}System.out.println("过滤后:"+x);}
}

手写实现简单栈(练习题)相关推荐

  1. 手写一个简单的IOC容器

    手写一个简单的IOC容器 原文 http://localhost:4000/2020/02/25/SSM/spring/%E6%89%8B%E5%86%99%E4%B8%80%E4%B8%AA%E5% ...

  2. jquery手写轮播图_用jQuery如何手写一个简单的轮播图?(附代码)

    用jQuery如何手写一个简单的轮播图?下面本篇文章通过代码示例来给大家介绍一下.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 用 jQuery 手写轮播图 先上个效果截图: 主要 ...

  3. 怎么手写一个简单的List集合

    List集合 手写一个简单的List集合为自己调用并不是特别难,只需要定义一个集合接口去提供所有方法的定义如下代码 : package com.myself.util; /*** * @author ...

  4. 基于bio手写实现简单的rpc

    基于bio手写实现简单的rpc 1.bio基础知识 Java BIO:传统的网络通讯模型,就是BIO,同步阻塞IO, 其实就是服务端创建一个ServerSocket, 然后就是客户端用一个Socket ...

  5. 手写一个栈 java,数据结构|用java自己手写实现一个栈

    javaDEMO 本网站记录了最全的各种JavaDEMO ,保证下载,复制就是可用的,包括基础的, 集合的, spring的, Mybatis的等等各种,助力你从菜鸟到大牛,记得收藏哦~~ https ...

  6. 手写一个简单的HashMap,搞定挑剔面试官

    作者:编程十二 链接:https://www.jianshu.com/p/1be0e957baf2 前言 今天去面试啊,聊得差不多的时候面试官突然问我会手写HashMap吗?这我哪能怂啊,好死不死的面 ...

  7. 手写一个简单的线程池MyThreadPool

    说明 手写的一个简单的线程池,旨在帮助了解线程池的工作原理. 核心内容 核心工作线程 任务阻塞队列 定义一个内部类去实现核心工作线程 /*** 内部类:工作的核心线程*/private final c ...

  8. 小白前端之路:手写一个简单的vue-router这几年,好像过的好快,怀念我的大学生活。 - 连某人 大三实习生,之前写过简单MVVM框架、简单的vuex、但是看了vue-router的源码(看了

    这几年,好像过的好快,怀念我的大学生活. 连某人 大三实习生,之前写过简单MVVM框架.简单的vuex.但是看了vue-router的源码(看了大概)之后就没有写,趁着周末不用工作(大三趁着不开学出来 ...

  9. 深入了解Vue 2响应式原理,并手写一个简单的Vue

    1. Vue 2的响应式原理 Vue.js 一个核心思想是数据驱动.所谓数据驱动是指视图是由数据驱动生成的,对视图的修改,不会直接操作 DOM,而是通过修改数据.vue.js里面只需要改变数据,Vue ...

最新文章

  1. 如何理解LSTM后接CRF?
  2. 第十六周 个人项目开发流程
  3. Flex 主窗体给弹出窗体传值
  4. VMware虚拟机启动后出现黑屏,不能显示界面,无论安装的是ubuntu、kali还是centos
  5. POJ - 3177 Redundant Paths(边双缩点)
  6. Hive | 加载数据后,出现字段显示为 NULL的问题
  7. U_boot 的 bootcmd 和bootargs参数详解
  8. 阿里99大促 | 模型识别背后的样本生成
  9. 此计算机到未能识别网络连接,本地连接显示“未识别的网络”
  10. 机器学习如何用于芯片系统设计?《机器学习系统芯片设计》
  11. css sprites css精灵
  12. 使用旧版本tensorflow出现了negative等报错的问题,AttributeError: 'module' object has no attribute 'xxx'
  13. [SSH] 为 GitLab 帐号添加 SSH keys
  14. miui12怎么自定义开机动画_MIUI12一天的体验,像换新机一样,感知超强!
  15. 用wim还原服务器系统,如何使用黑鲨PE中的Dism++工具对WIM文件进行系统还原
  16. Linux 开源词典工具及下载链接
  17. golang微信小程序爬虫教程offer秀
  18. ZEMAX | 如何使用 ISO 元件制图工具
  19. HTML5Point 如何去版权图片?
  20. mac chrome更新错误12

热门文章

  1. 电子电路仿真设计与制版软件综述 - PCB, OrCAD, PADs
  2. 智能搬运小车(自动抓取、循迹)
  3. 浅谈 —— AAA认证(认证+授权)详解+配置
  4. 【总结】网站性能分析-前台优化
  5. 把三层交换机当成普通交换机来用
  6. android五层系统架构,Android 系统架构
  7. 安卓的工程目录文件夹简单介绍
  8. 如何学习大咖的经验?
  9. IE打开报错,提示该内存不能为read的解决办法!
  10. Unity面板显示中文属性