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 commentInput: 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
// precedes the comment
if (line.size()>=2 && line[0] == '/' && line[1] == '/' ) {
cout << "It is a single-line comment" ;
return ;
}
if (line.size()>=4 && line[line.size() - 2] == '*'
&& line[line.size() - 1] == '/' && line[0] == '/' && line[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
// precedes the comment
if (line[ 0 ] == '/' && line[ 1 ] == '/' )
{
System.out.println(
"It is a single-line comment" );
return ;
}
if (line[ 0 ]== '/' && line[ 1 ]== '*' && 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
# precedes 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 ] = = '/' and line[ 0 ] = = '/' and 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
// precedes 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] == '/' && line[0] == '/' && line[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
// precedes the comment
var regex = new RegExp( "//.*" , );
var rex = regex.test(line);
if (rex){
document.write( "It is a single-line comment" );
return ;
}
var regexMul = new RegExp( "/\*.*?\*/" , );
var rexmul = regexMul.test(line);
if (rexmul)
{
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)