In this problem, we are given an array arr[] consisting of N positive integers stored in unsorted order. Our task is to find a subarray with a given sum.Let's take an example to understand the problem, Input : arr[] = {2, 5, 1, 4, 6, 9, 5} sum = 11 Output : subarray = {1, 4, 6}Explanation −Subarray sum = 1 + 4 + 6 = 11Solution ApproachA simple solution to the problem is using nested loops. We will loop through the array and using an inner loop, we will find subarray. For each subarray we will find the sum ... Read More
In this problem, we are given a string str and an integer pow. Our task is to find a sub-string with given power.We need to return the substring whose power is equal to pow.Power of string is the sum of powers of its characters.Power of character : a -> 1, b -> 2, c -> 3, ...Let's take an example to understand the problem, Input : string = "programming" power = 49 Output : 'pro'Explanation −Power of matrix : pro, power(p) = 16 power(p) = 18 power(p) = 15 Total = 16 + 18 + 15 = 49Solution ApproachA simple ... Read More
In Ruby, we can take the help of lambda functions when we want to use anonymous functions. They are also treated like objects in Ruby, as everything in Ruby is treated as objects.SyntaxThe syntax of declaring a lambda function is shown below.lambda = lambda {}Or, we can also make use of lambda literal.lambda = ->() {} Let's first check the type of the lambda functions in Ruby with the help of a program.Example 1Consider the code shown belowsome_lambda_function = lambda { puts "Welcome to TutorialsPoint!"} puts some_lambda_function.classOutputProc Example 2Now let's create another program where we will use our own ... Read More
In Ruby, the class whose objects can be ordered uses the Comparable mixin. Class definitions need to include an operator to compare receivers with each other. The operator will return either -1, 0, or 1.It returns -1 if the receiver is less than another object.If it is greater than another object, then it returns 1.It returns 0 if the receiver is equal to another object.In the Comparable module, the operator is used to implement the conventional comparison operators (*, =, and >) and sometimes also between? method as well.Now that we know a little about the comparable module in ... Read More
In this article, we will explore the two most widely used methods on arrays in Ruby. These are the reverse() method and the reverse! method.reverse() methodThe reverse() method in Ruby reverses the content of the array and returns a new array. Now, let's take a couple of examples to understand how it works.Example 1# reverse() method in Ruby # array declaration first_arr = [18, 22, 33, nil, 7, 6] # array declaration second_arr = [1, 5, 1, 3, 88, 9] # array declaration third_arr = [18, 22, 55, 6] # reverse method example puts "reversed array ... Read More
Inheritance is a key aspect of any OOP language. With the help of inheritance, we can reuse the methods that are defined on the parent class (also known as superclass) in the child class (also known as subclass).In Ruby, single class inheritance is supported, which means that one class can inherit from the other class, but it can't inherit from two super classes. In order to achieve multiple inheritance, Ruby provides something called mixins that one can make use of.Inheritance helps in improving the code reusability, as the developer won't have to create the same method again that has already ... Read More
In Ruby, we have multiple types of iterators available to us. We will learn about the most common ones in this article, one by one.Each IteratorUsing this iterator, you can iterate over an array or a hash, returning each element as it is returned.Example 1Consider the code shown below# each iterator example (0..10).each do |itr| puts itr endOutput0 1 2 3 4 5 6 7 8 9 10Times IteratorThis iterator implants a loop with a specific number of iterations. The loop starts from zero and runs until it gets one less than the specified number.Example 2# time iterator example ... Read More
In Ruby, we can create threads which have different states and a life cycle which denotes its time since it started till its ending. In this article, we will take a look at the life cycle of a thread in Ruby.Thread Life Cycle in RubyThe Thread life cycle is a brief summary of how the thread develops from the beginning to the end. With the help of Thread.new, Thread.fork, or Thread.start, a new thread can be created.A new thread does not need to be started after creation. Whenever the CPU is available, it starts automatically.A Thread object is returned by ... Read More
Sometimes a situation arises where we would want to freeze the object instance so that it cannot be instantiated or modified and in Ruby, we can do that with the help of the freeze keyword.The approach is to invoke the Object#freeze statement.When we freeze an object, we are basically turning it into a constant and it should be noted that once an object is frozen, cannot be unfrozen.SyntaxThe syntax to freeze an object is shown below.Object.freezeNow that we know a little about freeze, let's take a couple of example to understand how it works.Example 1Consider the code shown belowveggies = ... Read More
Range is a class in Ruby. Ruby ranges represent a set of values that have a beginning and an end. A range can be represented as a number, character, string, or object. A range is constructed with start_point...end_point, start_point...endpoint literals, or with ::new. It provides flexibility and reduces the size of the code.There are different methods available to us in the range class methods; some of these are class methods whereas some are instance methods. In this article, we will explore both the class methods and the instance methods as well.The only class method available is the .new one.new MethodThe ... Read More