首页 > 其他分享 >Leetcode 两个队列实现栈 swift

Leetcode 两个队列实现栈 swift

时间:2023-08-22 16:25:39浏览次数:37  
标签:Int obj 队列 queue2 queue1 let func swift Leetcode

queue1  是最后生成的栈

queue2 是临时队列,把新进来的先放进去,再把queue1里的数据从头到尾读进去,然后互换

class MyStack {
    var queue1: [Int] = []
    var queue2: [Int] = []
    init() {

    }
    
    func push(_ x: Int) {
        queue2.append(x)
        while !queue1.isEmpty {
            queue2.append(queue1.removeFirst())
        }
        swap(&queue1, &queue2)
    }
    
    func pop() -> Int {
        let r: Int = queue1.removeFirst()
        return r
    }
    
    func top() -> Int {
        var r: Int = 0
        if !queue1.isEmpty {
            r = queue1.first!
        }
        return r
    }
    
    func empty() -> Bool {
        return queue1.isEmpty
    }
}

/**
 * Your MyStack object will be instantiated and called as such:
 * let obj = MyStack()
 * obj.push(x)
 * let ret_2: Int = obj.pop()
 * let ret_3: Int = obj.top()
 * let ret_4: Bool = obj.empty()
 */

 

https://leetcode.cn/problems/implement-stack-using-queues/

标签:Int,obj,队列,queue2,queue1,let,func,swift,Leetcode
From: https://www.cnblogs.com/huangzs/p/17648807.html

相关文章

  • swift--控件工厂类的实现
    控件工厂类,简而言之就是,减少代码的复用率,只在哪里用,然后在哪里调:代码如下:importUIKitclassViewFactory:UIView,UITextFieldDelegate{//默认控件的尺寸classfuncgetDefaultFrame()->CGRect{letdefaultFrame=CGRect(x:0,y:0,width:100,height......
  • swift--动画效果
    一、for循环创建4*4个view,然后对立面的所有view进行动画,这里列集中动画的效果:1,旋转动画fortileinbackgrounds{//现将数字块大小职位原始尺寸的1/10tile.layer.setAffineTransform(CGAffineTransform(scaleX:0.1,y:0.1))......
  • swift--使用 is 和 as 操作符来实现类型检查和转换 / AnyObject与Any的区别
    声明几个类://动物类classAnimal{}//陆地动物类classterricole:Animal{}//海洋动物类classSeaAnimals:Animal{}1,is用来做类型检查letcat=terricole()letfish=SeaAnimals()letarr=[cat,fish]foranima......
  • swift--触摸(UITouch)事件(点击,移动,抬起)
    触摸事件:UITouch:一个手机第一次点击屏幕,会形成一个UITouch对象,知道离开销毁。表示触碰。UITouch对象能表明当前手指触碰的屏幕位置、状态,状态分为开始触碰、移动、离开。具体方法介绍如下:1.overridefunctouchesBegan(_touches:Set<UITouch>,withevent:UIEvent?)通知调用者当......
  • swift--添加新手引导页
    swift和oc逻辑上都是一样的,只是写法不一样,可以使用一个view,也可以使用一个viewController,两种都可以的,使用view注意初始化的时候给他一个frame,vc的话,直接在本控制器里面写控制即可! 1,创建一个vc,然后在里面初始化一个scrollview,升值contentsize为3*页面宽度,然后添加图片,最后可以实......
  • swift--获取window
    有时候,我们需要频繁的调用界面,然后给当前页面加一个跟视图,这个时候就需要找windown,代码如下:letrootVC=UIApplication.shared.delegateas!AppDelegaterootVC.window?.rootViewController=MainVC()这样即可!仅供参考!作者:稻草人11223......
  • swift--设置app图标和启动页面
    1,如下图:选择上图步骤1,然后选择步骤2,aapp图标,尺寸上面都有,b启动图,我这是创建好的,如果没有创建,先创建c这块需要置为空接着步骤b进入下图  选择1,点击2选择上图,可以看到3已经创建成功备注1:如下图按照步骤,找到a,然后取消选中fdsfgasfa备注2:选择启动图片资源,如下图按照上......
  • swift--使用UserDefaults来进行本地数据存储
    UserDefaults适合轻量级的本地客户端存储,存储一个值,新值可以覆盖旧值,可以重复存储,也可以存储一次,然后直接从UserDefaults里面读取上次存储的信息,很方便,用的时候,宏定义下,直接调用!轻量级数据库的话,移动端一般使用SQlite数据库,也是一款轻量级的适合移动端设备的数据库,具体可以参考我以......
  • swift开发之 -- 自动轮播图(UIScrollView+UIPageControl+Timer)
    比较简单,原理就不说了,这里只做记录:代码如下:1,准备varpageControl:UIPageControl?varmyscrollView:UIScrollView?varmyTimer:Timer?varmycurrentPage:NSInteger?varcourses=[["name":"first","pic":"1.jpeg&qu......
  • LeetCode338.比特位计数
    先以2,3为例,它们的二进制分别是10、11,可以看到,忽略其二进制中最高位的1之后,这组数中二进制位为1的数量分别和数字0,1中二进制位为1的数量相同,再以4,5,6,7为例,他们的二进制分别是100、101、110、111,忽略其二进制中最高位的1之后,这组数中二进制位为1的数量分别和数字0,1,2,3中二进制位为1的......