Perfect Square String

Given a String str and the task is to check sum of ASCII value of all characters is a perfect square or not.

Examples : 

Input : ddddddddddddddddddddddddd
Output : Yes

Input : GeeksForGeeks
Output : No

Recommended Practice

Algorithm  

  • Calculate the string length
  • Calculate sum of ASCII value of all characters
  • Take the square root of the number sum and store it into variable squareRoot
  • Take floor value of the squareRoot and subtract from squareRoot
  • If the difference of floor value of squareRoot and squareRoot is 0 then print “Yes” otherwise “No”

Below is the implementation of the above approach : 

C++




// C++ program to find if string is a
// perfect square or not.
#include <bits/stdc++.h>
using namespace std;
  
bool isPerfectSquareString(string str)
{
    int sum = 0;
      
    // calculating the length of
    // the string
    int len = str.length();
      
    // calculating the ASCII value
    // of the string
    for (int i = 0; i < len; i++)
        sum += (int)str[i];
      
    // Find floating point value of
    // square root of x.
    long double squareRoot = sqrt(sum);
      
    // If square root is an integer
    return ((squareRoot - 
             floor(squareRoot)) == 0);
}
  
// Driver code
int main()
{
    string str = "d";
      
    if (isPerfectSquareString(str))
        cout << "Yes";
    else
        cout << "No";
}


Java




// Java program to find if string
// is a perfect square or not.
import java.io.*;
  
class GFG {
      
    static boolean isPerfectSquareString(String str)
    {
        int sum = 0;
          
        // calculating the length
        // of the string
        int len = str.length();
          
        // calculating the ASCII 
        // value of the string
        for (int i = 0; i < len; i++)
            sum += (int)str.charAt(i);
          
        // Find floating point value
        // of square root of x.
        long squareRoot = (long)Math.sqrt(sum);
          
        // If square root is an integer
        return ((squareRoot - 
                Math.floor(squareRoot)) == 0);
    }
  
    // Driver code
    public static void main (String[] args)
    {
        String str = "d";
      
        if (isPerfectSquareString(str))
            System.out.println("Yes");
        else
            System.out.println("No");
    }
}
  
// This code is contributed by Ajit.


Python3




# Python3 program to find 
# if string is a perfect 
# square or not.
import math;
def isPerfectSquareString(str):
    sum = 0;
      
    # calculating the length
    # of the string
    l = len(str);
      
    # calculating the ASCII 
    # value of the string
    for i in range(l):
        sum = sum + ord(str[i]);
      
    # Find floating point value
    # of square root of x.
    squareRoot = math.sqrt(sum);
      
    # If square root is an integer
    return ((squareRoot -
             math.floor(squareRoot)) == 0);
  
# Driver code
str = "d";
  
if (isPerfectSquareString(str)):
    print("Yes");
else:
    print("No");
  
# This code is contributed by mits


C#




// C# program to find if string
// is a perfect square or not.
using System;
  
class GFG
{
    static bool isPerfectSquareString(string str)
    {
        int sum = 0;
          
        // calculating the length
        // of the string
        int len = str.Length;
          
        // calculating the ASCII 
        // value of the string
        for (int i = 0; i < len; i++)
            sum += (int)str[i];
          
        // Find floating point value
        // of square root of x.
        double squareRoot = Math.Sqrt(sum);
        double F = Math.Floor(squareRoot);
  
        // If square root is an integer
        return ((squareRoot - F) == 0);
    }
  
    // Driver Code
    public static void Main()
    {
        string str = "d";
      
        if (isPerfectSquareString(str))
            Console.WriteLine("Yes");
        else
            Console.WriteLine("No");
    }
}
  
// This code is contributed by Sam007


PHP




<?php
// PHP program to find if string 
// is a perfect square or not.
  
function isPerfectSquareString($str)
{
    $sum = 0;
      
    // calculating the length
    // of the string
    $len = strlen($str);
      
    // calculating the ASCII 
    // value of the string
    for ($i = 0; $i < $len; $i++)
        $sum += (int)$str[$i];
      
    // Find floating point value 
    // of square root of x.
    $squareRoot = sqrt($sum);
      
    // If square root is an integer
    return (($squareRoot
            floor($squareRoot)) == 0);
}
  
// Driver code
$str = "d";
  
if (isPerfectSquareString($str))
    echo "Yes";
else
echo "No";
  
// This code is contributed by m_kit
?>


Javascript




<script>
  
// JavaScript program to find if string is a
// perfect square or not.
  
function isPerfectSquareString(str) 
{
    var sum = 0;
  
    // Calculating the length of
    // the string
    var len = str.length;
  
    // Calculating the ASCII value
    // of the string
    for(var i = 0; i < len; i++) 
        sum += str.charCodeAt(i);
  
    // Find floating point value of
    // square root of x.
    var squareRoot = Math.sqrt(sum);
  
    // If square root is an integer
    return squareRoot - Math.floor(squareRoot) == 0;
}
  
// Driver code
var str = "d";
  
if (isPerfectSquareString(str)) 
    document.write("Yes");
else 
    document.write("No");
      
// This code is contributed by rdtank
  
</script>


Output

Yes

Time Complexity: O(len), where the len is the length of the string.
Auxiliary Space: O(1)

Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button