1.寶石與石頭
給定字串j
代表石頭中寶石的型別,和字串s
代表你擁有的石頭。s
中每個字元代表了一種你擁有的石頭的型別,你想知道你擁有的石頭中有多少是寶石。
j
中的字母不重複,j
和s
中的所有字元都是字母。字母區分大小寫,因此"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.今天看到乙個很有意思的題,能否不用+號完成兩個數相加
不使用運算子+
和-
,計算兩整數 a
、b
之和。
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進製制...