Skip to content
Related Articles

Related Articles

Improve Article
Check if a given string is a comment or not
  • Last Updated : 14 May, 2021

Given a string S, representing a line in a program, the task is to check if the given string is a comment or not. 

Types of comments in programs:

  • Single Line Comment: Comments preceded by a Double Slash (‘//’)
  • Multi-line Comment: Comments starting with (‘/*’) and ending with (‘*/’).

Examples:  

Input: line = “/*GeeksForGeeks GeeksForGeeks*/” 
Output: It is a multi-line comment

Input: line = “// GeeksForGeeks GeeksForGeeks” 
Output: It is a single-line comment 



Approach: The idea is to check whether the input string is a comment or not. Below are the steps: 

  • Check if at the first Index(i.e. index 0) the value is ‘/’ then follow below steps else print “It is not a comment”.
  • If line[0] == ‘/’:
    • If line[1] == ‘/’, then print “It is a single line comment”.
    • If line[1] == ‘*’, then traverse the string and if any adjacent pair of ‘*’ & ‘/’ is found then print “It is a multi-line comment”.
  • Otherwise, print “It is not a comment”.

Below is the implementation of the above approach: 

C++




// C++ program for the above approach
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to check if the given
// string is a comment or not
void isComment(string line)
{
 
    // If two continuous slashes
    // preceeds the comment
    if (line[0] == '/' && line[1] == '/'
        && line[2] != '/') {
 
        cout << "It is a single-line comment";
        return;
    }
 
    if (line[line.size() - 2] == '*'
        && line[line.size() - 1] == '/') {
 
        cout << "It is a multi-line comment";
        return;
    }
 
    cout << "It is not a comment";
}
 
// Driver Code
int main()
{
    // Given string
    string line = "/*GeeksForGeeks GeeksForGeeks*/";
 
    // Function call to check whether then
    // given string is a comment or not
    isComment(line);
 
    return 0;
}

Java




// Java program for the above approach
import java.io.*;
import java.lang.*;
import java.util.*;
 
class GFG{
 
// Function to check if the given
// string is a comment or not
static void isComment(String S)
{
    char line[] = S.toCharArray();
 
    // If two continuous slashes
    // preceeds the comment
    if (line[0] == '/' && line[1] == '/' &&
        line[2] != '/')
    {
        System.out.println(
            "It is a single-line comment");
        return;
    }
 
    if (line[line.length - 2] == '*' &&
        line[line.length - 1] == '/')
    {
        System.out.println(
            "It is a multi-line comment");
        return;
    }
 
    System.out.println("It is not a comment");
}
 
// Driver Code
public static void main(String[] args)
{
     
    // Given string
    String line = "/*GeeksForGeeks GeeksForGeeks*/";
 
    // Function call to check whether then
    // given string is a comment or not
    isComment(line);
}
}
 
// This code is contributed by Kingash

Python3




# Python3 program for the above approach
 
# Function to check if the given
# string is a comment or not
def isComment(line):
   
    # If two continuous slashes
    # preceeds the comment
    if (line[0] == '/'  and line[1] == '/' and line[2] != '/'):
        print("It is a single-line comment")
        return
 
    if (line[len(line) - 2] == '*' and line[len(line) - 1] == '/'):
        print("It is a multi-line comment")
        return
 
    print("It is not a comment")
 
# Driver Code
if __name__ == '__main__':
   
    # Given string
    line = "/*GeeksForGeeks GeeksForGeeks*/"
     
    # Function call to check whether then
    # given string is a comment or not
    isComment(line)
     
    # This code is contributed by ipg2016107.

C#




// C# program for the above approach
using System;
using System.Collections.Generic;
 
class GFG{
     
// Function to check if the given
// string is a comment or not
static void isComment(string S)
{
    char[] line = S.ToCharArray();
 
    // If two continuous slashes
    // preceeds the comment
    if (line[0] == '/' && line[1] == '/' &&
        line[2] != '/')
    {
        Console.WriteLine("It is a single-line comment");
        return;
    }
 
    if (line[line.Length - 2] == '*' &&
        line[line.Length - 1] == '/')
    {
        Console.WriteLine("It is a multi-line comment");
        return;
    }
 
    Console.WriteLine("It is not a comment");
}
 
// Driver Code
static public void Main()
{
     
    // Given string
    string line = "/*GeeksForGeeks GeeksForGeeks*/";
 
    // Function call to check whether then
    // given string is a comment or not
    isComment(line);
}
}
 
// This code is contributed by splevel62

Javascript




<script>
 
// JavaScript program for the above approach
  
 
// Function to check if the given
// string is a comment or not
function isComment( line)
{
 
 
    // If two continuous slashes
    // preceeds the comment
    if (line[0] == '/' && line[1] == '/' &&
        line[2] != '/')
    {
        document.write(
            "It is a single-line comment");
        return;
    }
 
    if (line[line.length - 2] == '*' &&
        line[line.length - 1] == '/')
    {
        document.write(
            "It is a multi-line comment");
        return;
    }
 
    document.write("It is not a comment");
}
// Driver Code
 
// Given string
var line = "/*GeeksForGeeks GeeksForGeeks*/";
 
// Function call to check whether then
// given string is a comment or not
isComment(line);
 
     
     
</script>
Output: 
It is a multi-line comment

 

Time Complexity: O(N)
Auxiliary Space: O(1)

 

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 industry experts, please refer DSA Live Classes




My Personal Notes arrow_drop_up
Recommended Articles
Page :