function test(){
   's是字符串
   int i=0; 'i是字符a的计数器
   int j=0; 'j是字符b的计数器
   for (int i=0;i<s.lenth();i++){
       if (s.charAt(i).equals("a")){
          i++;
       }
       if (s.charAt(i).equals("b")){
          j++;         
       }
   }
   if (i==j){
      alert("输入的字符串被接受");
   }else{
      alert("输入的字符串不被接受");
   }
}

解决方案 »

  1.   

    我这里实际也有个,不过我觉得不太好。
    谁能给小弟1个比这个更加完善的经典代码?希望各位高手多多帮帮小弟学习JAVA
      

  2.   

    如下:
    b#include<iostream.h>
    #include<stdlib.h>const int maxsize=100;
    struct seqstack
    {
    char stack[maxsize];
    int top;
    };void inistack(seqstack &s)
    {
    s.stack[s.top]='*';
    }void push(seqstack &s,char x)
    {
    if(s.top==maxsize-1)
    cout<<"overflow"<<endl;
        else
    {
    s.top++;
    s.stack[s.top]=x;
    }
    }void pop(seqstack &s)
    {
    if(s.top==0)
    cout<<"underflow"<<endl; 
    else 
    s.top--;
    }//elemtype gettop(seqstack s)
    //{
    // if (s.top==0) {cout<<"underflow"; return 0;}
    // else return s.stack[s.top];
    //}int empty(seqstack &s)
    {
    if(s.top==0) return 1;
    else return 0;
    }void main()
    {
    seqstack s;
    s.top=1;
    int i=0;int j=1;int k=0;
    inistack(s);
    char a[50];
    cout<<"此实验是字符c的左右字符的个数要相等的下推自动机:\n";
    cout<<"请输入字符串:并以#结束:";
    cin>>a[i];
    while (a[i]!='#')
    {
    i++;
    cin>>a[i];
    j++;
    } for(i=0;i<j;i++)
    {
    if(a[i]!='c')
    k++;
    else
    break;
    }

    for(i=0;i<k; i++)
    {
    push(s,a[i]);
    } for(i=k+1;i<=j-2;i++)
    {
            pop(s);
    if(empty(s))
    break;
    } if(s.stack[s.top]=='*')
    cout<<"接受"<<endl;
    else 
            cout<<"不接受"<<endl;
    }
      

  3.   

    首先你的下推自动机好象写的不太对 ,(a,b)* 只是a和b的任意组合
    如果你是要求a,b的字符数相等,是用正则表达式来判断的
    java.util.regex.*
      

  4.   

    你的这个要求肯定是用正则表达式的
    其实一个下推自动机就是一个正则表达式
    你只要验证就行了
    http://www.ccw.com.cn/htm/app/aprog/01_7_31_4.asp
      

  5.   

    恩,是的,多谢这位大哥指点上面那个程序运行后是个一个接受语言 WCW逆 的
    下推自动机,就是说程序运行以后,如果我输入一个字
    符串abbabcbabba,他就会显示被接受(因为这个字符串
    C的左边和又边是互逆的,和这台确定下推自动机所接受
    的字符串的规定  WCW逆   是一样的)大哥能否帮我把那段代码完善一下。有不足和考虑不好的帮我指出来1下,我觉得通过这样印象会比较加深些:)学好这个模型对我以后解决难度大的很有帮助我觉得。现在本人实在是大菜鸟1只。希望老鸟门顶小弟飞起下。感谢!!!