力扣題目彙總(獨特的電子郵件地址,二進制求和,反轉字符串中的元音字母)

獨特的電子郵件地址

1.題目描述

  1. 每封電子郵件都由一個本地名稱和一個域名組成,以 @ 符號分隔。python

    例如,在 alice@leetcode.com中, alice 是本地名稱,而 leetcode.com 是域名。函數

    除了小寫字母,這些電子郵件還可能包含 '.''+'code

    若是在電子郵件地址的本地名稱部分中的某些字符之間添加句點('.'),則發往那裏的郵件將會轉發到本地名稱中沒有點的同一地址。例如,"alice.z@leetcode.com」「alicez@leetcode.com」 會轉發到同一電子郵件地址。 (請注意,此規則不適用於域名。)leetcode

    若是在本地名稱中添加加號('+'),則會忽略第一個加號後面的全部內容。這容許過濾某些電子郵件,例如 m.y+name@email.com 將轉發到 my@email.com。 (一樣,此規則不適用於域名。)字符串

    能夠同時使用這兩個規則。get

    給定電子郵件列表 emails,咱們會向列表中的每一個地址發送一封電子郵件。實際收到郵件的不一樣地址有多少?string

    示例:域名

    輸入:["test.email+alex@leetcode.com","test.e.mail+bob.cathy@leetcode.com","testemail+david@lee.tcode.com"]
    輸出:2
    解釋:實際收到郵件的是 "testemail@leetcode.com" 和 "testemail@lee.tcode.com"。

    2.解題思路

#根據題意走刪除不必的東西,組成新的列表,最後用集合去重返回長度

3.解題

class Solution:
    def numUniqueEmails(self, emails: List[str]) -> int:
        res = set()      
        for email in emails:
            head, tail = email.split('@')
            head = head.split('+')[0]
            head = head.replace('.', '')
            res.add(head+"@"+tail)
        return len(res)

二進制求和

1.題目描述

給定兩個二進制字符串,返回他們的和(用二進制表示)。it

輸入爲非空字符串且只包含數字 10io

示例 1:

輸入: a = "11", b = "1"
輸出: "100"

示例 2:

輸入: a = "1010", b = "1011"
輸出: "10101"

2.解題思路

先變成二進制進行加再把返回值中的0b去掉

3.解題

class Solution:
    def addBinary(self, a: str, b: str) -> str:
        return bin(int(a,2)+int(b,2))[2:]

反轉字符串中的元音字母

1題目描述

編寫一個函數,以字符串做爲輸入,反轉該字符串中的元音字母。

示例 1:

輸入: "hello"
輸出: "holle"

示例 2:

輸入: "leetcode"
輸出: "leotcede"

說明:
元音字母不包含字母"y"。

2.解題思路

關鍵在你與有大寫和小寫,並且題意這樣出他的元音字母確定是偶數個

3.解題

class Solution:
    def reverseVowels(self, s: str) -> str:
        l1 = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']
        i, j = 0, len(s)-1
        s = list(s)
        while i < j:
            if s[i] in l1 and s[j] in l1:
                s[i], s[j] = s[j], s[i]
                i += 1
                j -= 1
            if s[i] not in l1 or s[j] not in l1:
                if s[j] not in l1:
                    j -= 1
                if s[i] not in l1:
                    i += 1
        return ''.join(s)

`有更加好的思路,或者解題方法評論區留言謝謝

相關文章
相關標籤/搜索