Perfect Cube String
Given string str, the task is to check the sum of ASCII values of all characters in this string is a perfect cube or not.
Examples :
Input: str = “ll”
Output: Yes
ASCII value of l = 108
Therefore, sum of ASCII values = 108 + 108 = 216
which is a perfect cube 6 (6 * 6 * 6 = 216)Input: str = “a”
Output: No
ASCII value of a = 97
Therefore, sum of ASCII values = 97
which is not a perfect cube
Algorithm
- For each character in the String, find out its ASCII value
- Calculate sum of ASCII values of all characters
- Check whether this sum is a perfect cube or not.
- If the sum is a perfect cube, then print “Yes” otherwise “No”
Below is the implementation of the above approach:
C++
// C++ program to find if string is a // perfect cube or not. #include <bits/stdc++.h> using namespace std; bool isPerfectCubeString(string str) { int sum = 0; // Finding ASCII values of each // character and finding its sum for ( int i = 0; i < str.length(); i++) sum += ( int )str[i]; // Find the cube root of sum long double cr = round(cbrt(sum)); // Check if sum is a perfect cube return (cr * cr * cr == sum); } // Driver code int main() { string str = "ll" ; if (isPerfectCubeString(str)) cout << "Yes" ; else cout << "No" ; } |
Java
// Java program to find if String is a // perfect cube or not. import java.util.*; class GFG{ static boolean isPerfectCubeString(String str) { int sum = 0 ; // Finding ASCII values of each // character and finding its sum for ( int i = 0 ; i < str.length(); i++) sum += ( int )str.charAt(i); // Find the cube root of sum double cr = Math.round(Math.cbrt(sum)); // Check if sum is a perfect cube return (cr * cr * cr == sum); } // Driver code public static void main(String[] args) { String str = "ll" ; if (isPerfectCubeString(str)) System.out.print( "Yes" ); else System.out.print( "No" ); } } // This code is contributed by 29AjayKumar |
Python3
# Python3 program to find if string is a # perfect cube or not. from math import ceil def isPerfectCubeString(str1): sum = 0 # Finding ASCII values of each # character and finding its sum for i in range ( len (str1)): sum + = ord (str1[i]) # Find the cube root of sum cr = ceil(( sum ) * * ( 1 / 3 )) # Check if sum is a perfect cube return (cr * cr * cr = = sum ) # Driver code str1 = "ll" if (isPerfectCubeString(str1)): print ( "Yes" ) else : print ( "No" ) # This code is contributed by mohit kumar 29 |
C#
// C# program to find if String is a // perfect cube or not. using System; class GFG{ static bool isPerfectCubeString(String str) { int sum = 0; // Finding ASCII values of each // character and finding its sum for ( int i = 0; i < str.Length; i++) sum += ( int )str[i]; // Find the cube root of sum double cr = Math.Round(Math.Pow(sum, ( double ) 1 / 3)); // Check if sum is a perfect cube return (cr * cr * cr == sum); } // Driver code public static void Main(String[] args) { String str = "ll" ; if (isPerfectCubeString(str)) Console.Write( "Yes" ); else Console.Write( "No" ); } } // This code is contributed by PrinciRaj1992 |
Javascript
<script> // JavaScript program to find if string // is a perfect cube or not. function isPerfectCubeString(str) { var sum = 0; // Finding ASCII values of each // character and finding its sum for ( var i = 0; i < str.length; i++) { sum += str.charCodeAt(i); } // Find the cube root of sum var cr = Math.round(Math.cbrt(sum)); // Check if sum is a perfect cube return cr * cr * cr == sum; } // Driver code var str = "ll" ; if (isPerfectCubeString(str)) document.write( "Yes" ); else document.write( "No" ); // This code is contributed by rdtank </script> |
Output:
Yes
Time complexity: O(n) where n is the length of the given string
Auxiliary space: O(1)
Please Login to comment...