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)