Leetcode領扣做題筆記C 2

2021-09-01 13:04:47 字數 2013 閱讀 1351

1.寶石與石頭

給定字串j代表石頭中寶石的型別,和字串s代表你擁有的石頭。s中每個字元代表了一種你擁有的石頭的型別,你想知道你擁有的石頭中有多少是寶石。

j中的字母不重複,js中的所有字元都是字母。字母區分大小寫,因此"a""a"是不同型別的石頭。

示例 1:

輸入:j = "aa", s = "aaabbbb"輸出:3

示例 2:

輸入:j = "z", s = "zz"輸出:0

注意:

**:

class solution }}

return jewelssum;

}};

這裡我沒有加對陣列的範圍判定。可以if null return0,超過size return0。 很簡單我就不加了。

2. 機械人能否返回原點

在二維平面上,有乙個機械人從原點 (0, 0) 開始。給出它的移動順序,判斷這個機械人在完成移動後是否在(0, 0) 處結束

移動順序由字串表示。字元 move[i] 表示其第 i 次移動。機械人的有效動作有r(右),l(左),u(上)和d(下)。如果機械人在完成所有動作後返回原點,則返回 true。否則,返回 false。

注意:機械人「面朝」的方向無關緊要。 「r」 將始終使機械人向右移動一次,「l」 將始終向左移動等。此外,假設每次移動機械人的移動幅度相同。

示例 1:

輸入: "ud"

輸出: true

解釋:機械人向上移動一次,然後向下移動一次。所有動作都具有相同的幅度,因此它最終回到它開始的原點。因此,我們返回 true。

示例 2:

輸入: "ll"

輸出: false

解釋:機械人向左移動兩次。它最終位於原點的左側,距原點有兩次 「移動」 的距離。我們返回 false,因為它在移動結束時沒有返回原點。

思路: 判斷輸入中每個方向的次數, 左=右 前=後 就能返回原點。

**:

class solution 

if(moves[i] == 'd')

if(moves[i] == 'r')

if(moves[i] == 'l' )

}          

if((a == b) && (c == d))

else 

return false;

}};

也可以只用兩個引數,水平和垂直,u+1 d-1   左右同理,為零時即能返回原點。

3.今天看到乙個很有意思的題,能否不用+號完成兩個數相加

不使用運算子+-,計算兩整數 ​​​​​​​ab​​​​​​​之和。

class solution 

};

參考部落格:

a+b可以分為三步來理解,比如a=3,b=2

1、a的二進位制表示就是0011, b的二進位制是0010,那麼不考慮進製a+b的結果為0001。

2、 只考慮進製,結果就是0011+0010=0010

3、將該進製左移一位,變為00100

4、將00100再與0001進行異或,得到00101,即十進位制下等於5

5、結束

LeetCode 做題簡記

2016年夏天開始,跟著學校的乙個leetcode群每天做一題。下面記錄下過程中沒來得及做的,或者沒做好的,或者個人覺得得留意下的題目,以備更好的回顧。菜鳥乙個 未做的題目 有空補上 112.path sum 241.different ways to add parentheses 3.longe...

LeetCode 排序做題總結

題目描述 給定兩個字串 s 和 t 編寫乙個函式來判斷 t 是否是 s 的字母異位詞。示例 1 輸入 s anagram t nagaram 輸出 true 示例 2 輸入 s rat t car 輸出 false 說明 你可以假設字串只包含小寫字母。leetcode提交 class solutio...

學習筆記 C語言 做題注意事項(僅做題)

由於太久不學c語言了,一些東西都忘完了,寫一些做題時遇到的注意事項 1 8進製定義為 int x 010 即前面加個0 16進製為int x 0x10 沒有二進位制的定義規範 2 for 在無約束條件時,預設為ture 3 轉義字元有三種形式 1.8進製 加8進製數字 2.16進製制 x加16進製制...