zoukankan      html  css  js  c++  java
  • NYOJ 257 郁闷的C小加(一)

    郁闷的C小加(一)

    时间限制:1000 ms  |  内存限制:65535 KB
    难度:3
    描写叙述

    我们熟悉的表达式如a+ba+b*(c+d)等都属于中缀表达式。中缀表达式就是(对于双目运算符来说)操作符在两个操作数中间:num1 operand num2。同理。后缀表达式就是操作符在两个操作数之后:num1 num2 operand

    ACM队的“C小加”正在郁闷如何把一个中缀表达式转换为后缀表达式,如今请你设计一个程序,帮助C小加把中缀表达式转换成后缀表达式。

    为简化问题,操作数均为个位数,操作符仅仅有+-*/ 和小括号。

    输入
    第一行输入T。表示有T组測试数据(T<10)。
    每组測试数据仅仅有一行,是一个长度不超过1000的字符串。表示这个表达式。这个表达式里仅仅包括+-*/与小括号这几种符号。当中小括号能够嵌套使用。数据保证输入的操作数中不会出现负数。

    而且输入数据不会出现不匹配现象。

    输出
    每组输出都单独成行,输出转换的后缀表达式。
    例子输入
    2
    1+2
    (1+2)*3+4*5
    例子输出
    12+
    12+3*45*+
    AC码:
    #include<stdio.h>
    #include<string.h>
    #define N 1003
    int main()
    {
    	int s,t,T,i,len;
    	char stack[N],str[N],ch[N];
    	scanf("%d",&T);
    	while(T--)
    	{
    		scanf("%s",str);
    		len=strlen(str);
    		s=-1;
    		t=0;
    		for(i=0;i<len;i++)
    		{
    			if(str[i]>='0'&&str[i]<='9')
    			{
    				ch[t]=str[i];
    				t++;
    			}
    			else if(str[i]=='(')
    			{
    				stack[++s]=str[i];
    			}
    			else if(str[i]==')')
    			{
    				while(s>=0&&stack[s]!='(')
    				{
    					ch[t]=stack[s];
    					t++;  s--;
    				}
    				s--;
    			}
    			else if(str[i]=='/'||str[i]=='*')
    			{
    				while(stack[s]=='/'||stack[s]=='*')
    				{
    					ch[t]=stack[s];
    					t++;s--;
    				}
    				stack[++s]=str[i];
    			}
    			else
    			{
    				while(s>=0&&stack[s]!='(')
    				{
    					ch[t]=stack[s];
    					t++; s--;
    				}
    				stack[++s]=str[i];
    			}
    		}
    		while(s>=0)
    		{
    			ch[t]=stack[s];
    			t++;
    			s--;
    		}
    		ch[t]='';
    		printf("%s
    ",ch);
    	}
    	return 0;
    }


    
    
    
    
  • 相关阅读:
    ME51N&nbsp;ME52N创建修改采购申请…
    修改数据库表&nbsp;字段参考的数据…
    python 变量赋值,引用,初始化问题
    python 在eclipse中的中文问题
    python全局变量在 函数中 修改
    正则表达式
    matlab 笔记
    python class self thread join __init__.py
    Quora, Yahoo Answer
    分区,grub,boot.cfg,
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/6821167.html
Copyright © 2011-2022 走看看