Open In App

Perfect Square String

Last Updated : 20 Feb, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

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)



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads