leetcode 27 Remove Element

 

27Remove Element    40.30%删除数组中的指定数字,返回非重复的元素个数j,数组本身的前j个元素改变
while True: 如果出现错误的话,可以继续循环。语句中一定要有break,否则会一直循环下去。
try:except:语句 (Python 异常处理):
                           try: 正常的操作
                           except: 发生异常,执行这块代码
                           else: 如果没有异常执行这块代码

 

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Sat Jan 20 17:22:44 2018

@author: vicky
"""
#in-place,原地算法,用它的输出资料覆盖掉它的输入资料
class Solution(object):
    def removeElement(self, nums, val):
        """
        :type nums: List[int]
        :type val: int
        :rtype: int
        """
#        if len(nums)==0:
#            return 0
        j=0
        for i in range(len(nums)):
            if nums[i]!=val:
                nums[j]=nums[i]
                j=j+1
        return j


if __name__ == "__main__":
    nums=[3,2,2,3]
    val=3
    Solution().removeElement(nums,val)
    
#另一种写法
def removeElement(self, nums, val):       
        j = 0
        for c in nums:
            if c!= val:
                nums[j] = c
                j += 1
        return j

#perfect answer
def removeElement(self, nums, val):
    try: 
        #正常的操作
        while True: 
#        while True:采用该语句的核心思想是如果出现错误的话,可以继续循环。
#                   语句中一定要有结束该循环的break语句,否则会一直循环下去的。
#                   http://blog.csdn.net/geerniya/article/details/77524173
            nums.remove(val)
    except:
        #发生异常,即nums中没有val了,执行这块代码
        return len(nums)


# try/except语句
Python 异常处理 http://www.runoob.com/python/python-exceptions.html
捕捉异常可以使用try/except语句。
try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。
如果你不想在异常发生时结束你的程序,只需在try里捕获它。
语法:以下为简单的try....except...else的语法:
try:
    <语句>        #运行别的代码
except <名字>:
<语句>        #如果在try部份引发了'name'异常
except <名字>,<数据>:
    <语句>        #如果引发了'name'异常,获得附加的数据
else:
    <语句>        #如果没有异常发生

你可以不带任何异常类型使用except,如下实例
try:
    正常的操作
except:
    发生异常,执行这块代码
else:
    如果没有异常执行这块代码

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值