鱼C论坛

 找回密码
 立即注册
楼主: ~风介~

[技术交流] #鱼C五周年狂欢预热#第三弹(已结束)

  [复制链接]
发表于 2015-1-17 12:40:28 | 显示全部楼层
啊啊啊O(≧口≦)O。。。
好难啊。。。

评分

参与人数 1鱼币 +30 收起 理由
wei_Y + 30

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-17 13:09:09 | 显示全部楼层
小龙_h 发表于 2015-1-17 12:40
啊啊啊O(≧口≦)O。。。
好难啊。。。

看看小甲鱼的视频就会有思路了,加油哦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2015-1-17 14:38:56 | 显示全部楼层
Xiao_肚oO 发表于 2015-1-17 03:55
只支持字母系数,字母就没有负号一说了嘛 b=(-b)

o~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-17 15:36:52 | 显示全部楼层
aminghanhua 发表于 2015-1-16 16:58
程序写好了 见附件 @小甲鱼  希望小甲鱼老师多多关注Delphi啊

非常不错哦,加油~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-17 15:58:29 | 显示全部楼层

回帖奖励 +3 鱼币

试一试!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-17 16:26:34 | 显示全部楼层

回帖奖励 +3 鱼币

先把鱼币收下,第二期就跪了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-17 17:49:17 | 显示全部楼层

回帖奖励 +3 鱼币

激动人心,无法言表!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-17 20:02:18 | 显示全部楼层
本帖最后由 小龙_h 于 2015-1-18 10:35 编辑

555。。。
整了好几个小时。。。
不知道还有木有bug。。。对了,版本是3.4
  1. pri,sta,res={0:'0','+':'1','-':'1','*':'2','/':'2','(':'3'},[0,],[]
  2. for s in input('input:').replace(' ',''):
  3.     if s in '*/(':
  4.         while pri[sta[len(sta)-1]] in '2' and s !='(':res.append(sta.pop())
  5.         sta.append(s)
  6.     elif s in '+-':
  7.         while pri[sta[len(sta)-1]] in '12':res.append(sta.pop())
  8.         sta.append(s)
  9.     elif s == ')':
  10.         res.append(sta.pop())
  11.         while pri[sta[len(sta)-1]] not in '3':res.append(sta.pop())
  12.         sta.pop()
  13.     else:res.append(s)
  14. res.extend([sta.pop() for i in sta if len(sta)>0]);print(' '.join(res))
复制代码


评分

参与人数 1鱼币 +30 收起 理由
wei_Y + 30 排名奖励!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-17 20:24:17 | 显示全部楼层

回帖奖励 +3 鱼币

..只限python
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-17 20:46:59 | 显示全部楼层

回帖奖励 +3 鱼币

  1. import types


  2. numbers=[1,'+',2,'*','(',3,'+',4,'-',5,')','/',6]
  3. characters=[]
  4. result=[]
  5. characters.append('/0')
  6. priority={}
  7. priority['/0']=-1
  8. priority['+']=0
  9. priority['-']=0
  10. priority['*']=1
  11. priority['/']=1
  12. priority['(']=-1#(后面的任何运算符都得入栈
  13. print(numbers)

  14. while numbers:
  15. aChar=numbers.pop(0)
  16. if type(aChar) == type(1):
  17. print(aChar)
  18. result.append(aChar)
  19. elif aChar == '(':
  20. characters.append(aChar)
  21. elif aChar == ')':
  22. bChar=characters.pop()
  23. while bChar!='(':
  24. print(bChar)
  25. result.append(bChar)
  26. bChar=characters.pop()
  27. else:
  28. topChar=characters[len(characters)-1]
  29. if priority[aChar]>priority[topChar]:
  30. characters.append(aChar)
  31. else :
  32. while priority[aChar]<=priority[topChar]:
  33. bChar=characters.pop()
  34. print(bChar)
  35. result.append(bChar)
  36. topChar=characters[len(characters)-1]
  37. characters.append(aChar)

  38. while characters:
  39. result.append(characters.pop())

  40. while result:
  41. print(result.pop())
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-17 20:53:31 | 显示全部楼层

回帖奖励 +3 鱼币

:lol:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-1-18 00:24:28 | 显示全部楼层

回帖奖励 +3 鱼币

还没学好.只能打下酱油了,祝论坛越来越好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-18 09:44:05 | 显示全部楼层

回帖奖励 +3 鱼币

以鱼币为名,我来水了。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-18 10:21:23 | 显示全部楼层
什么时候结束呢,朋友正在写:lol:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-18 10:33:26 | 显示全部楼层

回帖奖励 +3 鱼币

才刚开始Python的学习,进来学习一下前辈的思路。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-18 11:23:40 | 显示全部楼层

回帖奖励 +3 鱼币

  • operator_pre, operator, getin, putout,express = ({'+': 1, '-': 1, '*': 2, '/': 2, '^': 3, '%': 3, '(': 0, '#': 0}, ['+', '-', '*', '/', '%', '^'], [], [], raw_input("请输入表达式: "))
  • for index in range(0,len(express)):
  •     if express[index] in ['+','-'] and express[index-1] == '(' or index == 0: express = express[:index] + '0' + express[index:]
  • for ch in express:
  •     if ch <= '9' and ch >= '0': putout.append(ch)
  •     elif ch in operator:
  •         if  len(getin) != 0 and operator_pre[ch] > operator_pre[getin[-1]]: getin.append(ch)
  •         elif len(getin) != 0 and operator_pre[ch] <= operator_pre[getin[-1]]:
  •             while len(getin) != 0 and operator_pre[getin[-1]] >= operator_pre[ch]:putout.append(getin.pop())
  •             getin.append(ch)
  •         else:getin.append(ch)
  •     elif ch == '(':getin.append(ch)
  •     elif ch == ')':
  •         while getin[-1] != '(' and len(getin) != 0:putout.append(getin.pop())
  •         getin.pop()
  •     else:putout.append(ch)
  • while len(getin) != 0:putout.append(getin.pop())
  • print(''.join(putout))

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-18 11:27:34 | 显示全部楼层
代码怎么添加格式,怎么人家发的都是灰色的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-18 11:28:44 | 显示全部楼层
weilovelin 发表于 2015-1-18 11:27
代码怎么添加格式,怎么人家发的都是灰色的

QQ拼音截图未命名.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-18 11:29:14 | 显示全部楼层

  1. operator_pre, operator, getin, putout,express = ({'+': 1, '-': 1, '*': 2, '/': 2, '^': 3, '%': 3, '(': 0, '#': 0}, ['+', '-', '*', '/', '%', '^'], [], [], raw_input("请输入表达式: "))
  2. for index in range(0,len(express)):
  3.         if express[index] in ['+','-'] and express[index-1] == '(' or index == 0: express = express[:index] + '0' + express[index:]
  4. for ch in express:
  5.     if ch <= '9' and ch >= '0': putout.append(ch)
  6.     elif ch in operator:
  7.         if  len(getin) != 0 and operator_pre[ch] > operator_pre[getin[-1]]: getin.append(ch)
  8.         elif len(getin) != 0 and operator_pre[ch] <= operator_pre[getin[-1]]:
  9.             while len(getin) != 0 and operator_pre[getin[-1]] >= operator_pre[ch]:putout.append(getin.pop())
  10.             getin.append(ch)
  11.         else:getin.append(ch)      
  12.     elif ch == '(':getin.append(ch)
  13.     elif ch == ')':
  14.         while getin[-1] != '(' and len(getin) != 0:putout.append(getin.pop())
  15.         getin.pop()
  16.     else:putout.append(ch)
  17. while len(getin) != 0:putout.append(getin.pop())       
  18. print(''.join(putout))
复制代码



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-18 11:29:49 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 00:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表