File tree Expand file tree Collapse file tree 4 files changed +111
-0
lines changed
typescript/0007_reverse_integer Expand file tree Collapse file tree 4 files changed +111
-0
lines changed Original file line number Diff line number Diff line change 1+ /*
2+ * Given a signed 32-bit integer x, return x with its digits reversed.
3+ *
4+ * If reversing x causes the value to go outside the signed 32-bit integer range
5+ * [-231, 231 - 1], then return 0.
6+ *
7+ * Assume the environment does not allow you to store 64-bit integers (signed or
8+ * unsigned).
9+ */
10+
11+ #include < cstdlib>
12+
13+ class Solution {
14+ public:
15+ int reverse (int x) {
16+ const int negative_helper = x < 0 ? -1 : 1 ;
17+ x = std::abs (x);
18+ int result = 0 ;
19+
20+ while (x != 0 ) {
21+ const int mod = x % 10 ;
22+ x /= 10 ;
23+ result = result * 10 + mod;
24+ }
25+
26+ return result * negative_helper;
27+ }
28+ };
Original file line number Diff line number Diff line change 1+ #include " 0007_reverse_integer.h"
2+ #include < gtest/gtest.h>
3+
4+ TEST (ReverseInteger, Example1) {
5+ const int input = 123 ;
6+ const int output = 321 ;
7+
8+ EXPECT_EQ (Solution ().reverse (input), output);
9+ }
10+
11+ TEST (ReverseInteger, Example2) {
12+ const int input = -123 ;
13+ const int output = -321 ;
14+
15+ EXPECT_EQ (Solution ().reverse (input), output);
16+ }
17+
18+ TEST (ReverseInteger, Example3) {
19+ const int input = 120 ;
20+ const int output = 21 ;
21+
22+ EXPECT_EQ (Solution ().reverse (input), output);
23+ }
24+
25+ TEST (ReverseInteger, Example4) {
26+ const int input = 0 ;
27+ const int output = 0 ;
28+
29+ EXPECT_EQ (Solution ().reverse (input), output);
30+ }
Original file line number Diff line number Diff line change 1+ import { reverse } from "./0007_reverse_integer" ;
2+
3+ test ( "Reverse Integer 1" , ( ) => {
4+ const input = 123 ;
5+ const output = 321 ;
6+
7+ expect ( reverse ( input ) ) . toBe ( output ) ;
8+ } ) ;
9+
10+ test ( "Reverse Integer 2" , ( ) => {
11+ const input = - 123 ;
12+ const output = - 321 ;
13+
14+ expect ( reverse ( input ) ) . toBe ( output ) ;
15+ } ) ;
16+
17+ test ( "Reverse Integer 3" , ( ) => {
18+ const input = 120 ;
19+ const output = 21 ;
20+
21+ expect ( reverse ( input ) ) . toBe ( output ) ;
22+ } ) ;
23+
24+ test ( "Reverse Integer 4" , ( ) => {
25+ const input = 0 ;
26+ const output = 0 ;
27+
28+ expect ( reverse ( input ) ) . toBe ( output ) ;
29+ } ) ;
Original file line number Diff line number Diff line change 1+ /*
2+ * Given a signed 32-bit integer x, return x with its digits reversed.
3+ *
4+ * If reversing x causes the value to go outside the signed 32-bit integer range
5+ * [-231, 231 - 1], then return 0.
6+ *
7+ * Assume the environment does not allow you to store 64-bit integers (signed or unsigned).
8+ */
9+
10+ const reverse = ( x : number ) : number => {
11+ let negativeHelper = x < 0 ? - 1 : 1 ;
12+ let currentNumber = Math . abs ( x ) ;
13+ let result = 0 ;
14+
15+ while ( currentNumber > 0 ) {
16+ const mod = currentNumber % 10 ;
17+ currentNumber = Math . floor ( currentNumber / 10 ) ;
18+ result = result * 10 + mod ;
19+ }
20+
21+ return result * negativeHelper ;
22+ } ;
23+
24+ export { reverse } ;
You can’t perform that action at this time.
0 commit comments