Skip to content

Commit 9b06e51

Browse files
authored
Merge pull request #670 from fartem/43_Multiply_Strings
2024-07-12 v. 6.1.3: added "43. Multiply Strings"
2 parents 649e99e + 349098d commit 9b06e51

File tree

4 files changed

+44
-1
lines changed

4 files changed

+44
-1
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -478,3 +478,4 @@ Profile on LeetCode: [fartem](https://leetcode.com/fartem/).
478478
| 36. Valid Sudoku | [Link](https://leetcode.com/problems/valid-sudoku/) | [Link](./lib/medium/36_valid_sudoku.rb) |
479479
| 38. Count and Say | [Link](https://leetcode.com/problems/count-and-say/) | [Link](./lib/medium/38_count_and_say.rb) |
480480
| 39. Combination Sum | [Link](https://leetcode.com/problems/combination-sum/) | [Link](./lib/medium/39_combination_sum.rb) |
481+
| 43. Multiply Strings | [Link](https://leetcode.com/problems/multiply-strings/) | [Link](./lib/medium/43_multiply_strings.rb) |

leetcode-ruby.gemspec

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ require 'English'
55
::Gem::Specification.new do |s|
66
s.required_ruby_version = '>= 3.0'
77
s.name = 'leetcode-ruby'
8-
s.version = '6.1.2'
8+
s.version = '6.1.3'
99
s.license = 'MIT'
1010
s.files = ::Dir['lib/**/*.rb'] + %w[bin/leetcode-ruby README.md LICENSE]
1111
s.executable = 'leetcode-ruby'

lib/medium/43_multiply_strings.rb

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# frozen_string_literal: true
2+
3+
# https://leetcode.com/problems/multiply-strings/
4+
# @param {String} num1
5+
# @param {String} num2
6+
# @return {String}
7+
def multiply(num1, num2)
8+
a = convert_to_int(num1)
9+
b = convert_to_int(num2)
10+
c = a * b
11+
12+
c.to_s
13+
end
14+
15+
private
16+
17+
# @param {String} num
18+
# @return {Integer}
19+
def convert_to_int(num)
20+
decimal_place = 1
21+
reverse_num = num.reverse
22+
int_value = 0
23+
24+
num.size.times do |i|
25+
int_value += (reverse_num[i].ord - '0'.ord) * decimal_place
26+
decimal_place *= 10
27+
end
28+
29+
int_value
30+
end
+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# frozen_string_literal: true
2+
3+
require_relative '../test_helper'
4+
require_relative '../../lib/medium/43_multiply_strings'
5+
require 'minitest/autorun'
6+
7+
class MultiplyStringsTest < ::Minitest::Test
8+
def test_default
9+
assert_equal('6', multiply('2', '3'))
10+
assert_equal('56088', multiply('123', '456'))
11+
end
12+
end

0 commit comments

Comments
 (0)