Skip to content
Related Articles

Related Articles

Improve Article

Perfect Cube String

  • Last Updated : 25 Mar, 2021

Given a 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 : 

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

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 str1ing 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

 




My Personal Notes arrow_drop_up
Recommended Articles
Page :