Given a string of binary characters, check if it is multiple of 3 or not.
Input : 1 0 1 0 Output : NO Explanation : (1 0 1 0) is 10 and hence not a multiple of 3 Input : 1 1 0 0 Output : YES Explanation : (1 1 0 0) is 12 and hence a multiple of 3
Approach : One simple method is to convert the binary number into its decimal representation and then check if it is a multiple of 3 or not. Now, when it comes to DFA (Deterministic Finite Automata), there is no concept of memory i.e. you cannot store the string when it is provided, so the above method would not be applicable. In simple terms, a DFA takes a string as input and process it. If it reaches final state, it is accepted, else rejected. As you cannot store the string, so input is taken character by character.
The DFA for given problem is :
As, when a number is divided by 3, there are only 3 possibilities. The remainder can be either 0, 1 or 2. Here, state 0 represents that the remainder when the number is divided by 3 is 0. State 1 represents that the remainder when the number is divided by 3 is 1 and similarly state 2 represents that the remainder when the number is divided by 3 is 2. So if a string reaches state 0 in the end, it is accepted otherwise rejected.
Below is the implementation of above approach :
- Check divisibility of binary string by 2^k
- Efficiently check whether n is a multiple of 4 or not
- Check whether a very large number of the given form is a multiple of 3.
- Check if a number is multiple of 9 using bitwise operators
- Write an Efficient Method to Check if a Number is Multiple of 3
- Check divisibility in a binary stream
- Check if binary representation of a number is palindrome
- Check if binary representations of two numbers are anagram
- Check if actual binary representation of a number is palindrome
- Check if binary representation of a given number and its complement are anagram
- Check in binary array the number represented by a subarray is odd or even
- Rotations of a Binary String with Odd Value
- Find the maximum possible Binary Number from given string
- Decimal representation of given binary string is divisible by 5 or not
- Efficient method for 2's complement of a binary string
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.