📜  Lex程序检查给定的字符串是否是回文

📅  最后修改于: 2021-06-28 06:55:56             🧑  作者: Mango

问题:编写一个Lex程序来检查给定的字符串是否是回文。

解释:
Lex是一个生成词法分析器的计算机程序,由Mike Lesk和Eric Schmidt编写。 Lex读取指定词法分析器的输入流,并输出以C编程语言实现词法分析器的源代码。

说明:一个字符串被认为是回文如果反向字符串的是相同的字符串。例如,“ abba”是回文,但“ abbc”不是回文。

例子:

Input: Enter a string : naman 
Output: Given string is Palindrome

Input: Enter a string : geeksforgeeks
Output: Given string is not Palindrome 

执行:

/* Lex program to check whether 
     - given string is Palindrome or Not */
  
%
 {
    int i, j, flag;
    %
 }
  
/* Rule Section */
% %
    [a - z A - z 0 - 9]*
{
    for (i = 0, j = yyleng - 1; i <= j; i++, j--) {
        if (yytext[i] == yytext[j]) {
            flag = 1;
        }
        else {
            flag = 0;
            break;
        }
    }
    if (flag == 1)
        printf("Given string is Palindrome");
    else
        printf("Given string is not Palindrome");
}
% %
  
    // driver code
    int main()
{
    printf("Enter a string :");
    yylex();
    return 0;
}
  
int yywrap()
{
    return 1;
}

输出: