LeetCode58. Length of Last Word-python(easy)

題目來源:

    https://leetcode.com/problems/length-of-last-word/description/

題目分析:

   本題是給定我們一個字符串,讓我們返回最後一個非空字符的長度,需要注意空格也算是一個字符。當時我考慮的時候是想從頭開始遍歷,用sheng來存儲遍歷的非空字符,遇到空格,則sheng='',從頭開始計數。這時我沒有考慮到最後一個非空字符後可以有多個空格,此時會返回‘’而非正確的結果。看到其他人的想法才覺得。。。果然思維很重要。有的人是這樣想的。從最後開始遍歷,當遇到第一個非空字符時開始計數,到遇到空字符時停止計數。

  此時我寫的代碼爲:

class Solution:
    def lengthOfLastWord(self, s):
        """
        :type s: str
        :rtype: int
        """
        s=s[::-1];count=0;i=0
        if(len(s)==0):
            return 0
        else:
            while((i<=(len(s)-1))and (s[i]==' ')):%%這裏需要注意要時刻注意i不要超過下標的界限,並且要把它放在and前面先進行比較
                i += 1
            while((i<=(len(s)-1))and(s[i]!=' ')):
                count = count + 1
                i = i+1

        return count

然後還有人用到了split函數,可以預防下標出界的問題,也可以使程序更簡單運行更快。

下面先來介紹一下split函數。

描述
Python split()通過指定分隔符對字符串進行切片,如果參數num 有指定值,則僅分隔 num 個子字符串
語法
split()方法語法:
str.split(str="", num=string.count(str)).
參數
str -- 分隔符,默認爲所有的空字符,包括空格、換行(\n)、製表符(\t)等。
num -- 分割次數。
返回值

返回分割後的字符串列表。

實例
以下實例展示了split()函數的使用方法:
#!/usr/bin/python
str = "Line1-abcdef \nLine2-abc \nLine4-abcd";
print str.split( );
print str.split(' ', 1 );
以上實例輸出結果如下:
['Line1-abcdef', 'Line2-abc', 'Line4-abcd']

['Line1-abcdef', '\nLine2-abc \nLine4-abcd']

再來介紹一下strip()函數

描述
Python strip() 方法用於移除字符串頭尾指定的字符(默認爲空格)。
語法
strip()方法語法:
str.strip([chars]);
參數
chars -- 移除字符串頭尾指定的字符。
返回值
返回移除字符串頭尾指定的字符生成的新字符串。
實例
以下實例展示了strip()函數的使用方法:
實例(Python 2.0+)
#!/usr/bin/python
# -*- coding: UTF-8 -*-
str = "0000000     Runoob  0000000"; 
print str.strip( '0' );  # 去除首尾字符 0
str2 = "   Runoob      ";   # 去除首尾空格
print str2.strip();
以上實例輸出結果如下:
     Runoob  

Runoob

則此時的代碼可以寫成:

class Solution:
    def lengthOfLastWord(self, s):
        """
        :type s: str
        :rtype: int
        """
        s=s[::-1]
        s=s.strip().split(' ')
        return len(s[0])

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章