Skip to content

Commit 2d46caf

Browse files
author
Charlene Jiang
committedJul 20, 2016
Merge branch 'master' of github.com:soapyigu/LeetCode_Swift
2 parents be16ac7 + 8bc7c60 commit 2d46caf

File tree

3 files changed

+426
-2
lines changed

3 files changed

+426
-2
lines changed
 

‎Math/SumTwoIntegers.swift

+35-1
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,38 @@ class SumTwoIntegers {
1616
}
1717
return a
1818
}
19-
}
19+
}
20+
21+
22+
/**
23+
* Question Link: https://leetcode.com/problems/sum-of-two-integers/
24+
* Primary idea: using ^ instead of +.
25+
* 00 + 00 <-> ret
26+
* 01 + 01 <-> ret ^ 10
27+
* 01 + 00 <-> if ret & 01 != 0
28+
* ret ^ 11
29+
* else
30+
* ret ^ 01
31+
*
32+
* Time Complexity: O(1), Space Complexity: O(1)
33+
*/
34+
35+
class Solution {
36+
func getSum(a: Int, _ b: Int) -> Int {
37+
var ret = 0;
38+
for i in 0 ..< 64 {
39+
let tmp = 1 << i
40+
if a & tmp == 0 && b & tmp == 0 {
41+
continue
42+
} else if a & tmp != 0 && b & tmp != 0 {
43+
ret = ret ^ (tmp << 1)
44+
} else {
45+
if ret & tmp != 0 {
46+
ret ^= (tmp << 1)
47+
}
48+
ret ^= tmp
49+
}
50+
}
51+
return ret
52+
}
53+
}

‎README.md

+366
Large diffs are not rendered by default.

‎String/ReverseString.swift

+25-1
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,28 @@ class ReverseString {
1010
func reverseString(s: String) -> String {
1111
return String(s.characters.reverse())
1212
}
13-
}
13+
}
14+
15+
/**
16+
* Question Link: https://leetcode.com/problems/reverse-string/
17+
* Primary idea: Using two iterators, one at the beginning, moving forward, another at the end moving backward.
18+
* Swap them each time they move.
19+
*
20+
* Time Complexity: O(n), Space Complexity: O(1)
21+
*
22+
*/
23+
class Solution {
24+
func reverseString(s: String) -> String {
25+
var chars: [Character] = [Character](s.characters)
26+
var b = 0
27+
var e = chars.count - 1
28+
while b < e {
29+
let tmp = chars[b]
30+
chars[b] = chars[e]
31+
chars[e] = tmp
32+
b += 1
33+
e -= 1
34+
}
35+
return String(chars)
36+
}
37+
}

0 commit comments

Comments
 (0)
Please sign in to comment.