27 | Remove 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:
如果没有异常执行这块代码