From cca7b4a55fd7fd7d389c407aaf47235edb11e80f Mon Sep 17 00:00:00 2001 From: fartem Date: Tue, 7 Jan 2025 11:45:29 +0300 Subject: [PATCH] 2025-01-07 v. 7.7.5: added "869. Reordered Power of 2" --- README.md | 1 + leetcode-ruby.gemspec | 2 +- lib/medium/869_reordered_power_of_2.rb | 27 ++++++++++++++++++++ test/medium/test_869_reordered_power_of_2.rb | 11 ++++++++ 4 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 lib/medium/869_reordered_power_of_2.rb create mode 100644 test/medium/test_869_reordered_power_of_2.rb diff --git a/README.md b/README.md index ca0654c5..2c382cf5 100644 --- a/README.md +++ b/README.md @@ -631,6 +631,7 @@ Profile on LeetCode: [fartem](https://leetcode.com/fartem/). | 858. Mirror Reflection | [Link](https://leetcode.com/problems/mirror-reflection/) | [Link](./lib/medium/858_mirror_reflection.rb) | [Link](./test/medium/test_858_mirror_reflection.rb) | | 863. All Nodes Distance K in Binary Tree | [Link](https://leetcode.com/problems/all-nodes-distance-k-in-binary-tree/) | [Link](./lib/medium/863_all_nodes_distance_k_in_binary_tree.rb) | [Link](./test/medium/test_863_all_nodes_distance_k_in_binary_tree.rb) | | 865. Smallest Subtree with all the Deepest Nodes | [Link](https://leetcode.com/problems/smallest-subtree-with-all-the-deepest-nodes/) | [Link](./lib/medium/865_smallest_subtree_with_all_the_deepest_nodes.rb) | [Link](./test/medium/test_865_smallest_subtree_with_all_the_deepest_nodes.rb) | +| 869. Reordered Power of 2 | [Link](https://leetcode.com/problems/reordered-power-of-2/) | [Link](./lib/medium/869_reordered_power_of_2.rb) | [Link](./test/medium/test_869_reordered_power_of_2.rb) | ### Hard diff --git a/leetcode-ruby.gemspec b/leetcode-ruby.gemspec index f8333082..44357f68 100644 --- a/leetcode-ruby.gemspec +++ b/leetcode-ruby.gemspec @@ -5,7 +5,7 @@ require 'English' ::Gem::Specification.new do |s| s.required_ruby_version = '>= 3.0' s.name = 'leetcode-ruby' - s.version = '7.7.4' + s.version = '7.7.5' s.license = 'MIT' s.files = ::Dir['lib/**/*.rb'] + %w[README.md] s.executable = 'leetcode-ruby' diff --git a/lib/medium/869_reordered_power_of_2.rb b/lib/medium/869_reordered_power_of_2.rb new file mode 100644 index 00000000..cb522f53 --- /dev/null +++ b/lib/medium/869_reordered_power_of_2.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +# https://leetcode.com/problems/reordered-power-of-2/ +# @param {Integer} n +# @return {Boolean} +def reordered_power_of2(n) + arr = count_for_reordered_power_of2(n) + (0...31).each do |i| + return true if arr == count_for_reordered_power_of2(1 << i) + end + + false +end + +private + +# @param {Integer} n +# @return {Integer[]} +def count_for_reordered_power_of2(n) + result = ::Array.new(10, 0) + while n.positive? + result[n % 10] += 1 + n /= 10 + end + + result +end diff --git a/test/medium/test_869_reordered_power_of_2.rb b/test/medium/test_869_reordered_power_of_2.rb new file mode 100644 index 00000000..2b10d344 --- /dev/null +++ b/test/medium/test_869_reordered_power_of_2.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +require_relative '../test_helper' +require_relative '../../lib/medium/869_reordered_power_of_2' +require 'minitest/autorun' + +class ReorderedPowerOf2Test < ::Minitest::Test + def test_default_one = assert(reordered_power_of2(1)) + + def test_default_two = assert(!reordered_power_of2(10)) +end