1.从左到右计算数学表达式,不分计算符号的优先级
<!DOCTYPE html>
<html>
<head>
<meta charset="{CHARSET}">
<title></title>
</head>
<body>
<!--
作者:mht
时间:2017-03-25
描述:从左到右计算数学表达式,不分计算符号的优先级
-->
<script>
var str = "11+2*5-11";
var reg3 = /([+\-*]+|\d+)/gi;//匹配+-*或数字运算符
var numList = str.match(reg3);//将字符串安不同数据类型分割
var result = parseInt(numList[0]);
for(var i = 1; i < numList.length - 1; i++) {
var temp = numList[i];
var temp2 = numList[i + 1];
if(temp.match(/\*/)) {
result = result * parseInt(temp2);
} else if(temp.match(/\-/)) {
result = result - parseInt(temp2);
} else if(temp.match(/\+/)) {
result = result + parseInt(temp2);
}else {continue;}//若为数字则跳过本次循环
}
console.log(result);//"54"
console.log(numList);//"11,+,2,*,5,-,11"
</script>
</body>
</html>
Python实现方法(0-9数字)
a=raw_input()
result=int(a[0])
for i in range(len(a)-1):
if(a[i]=='-'):
result-=int(a[i+1])
elif (a[i]=='+'):
result+=int(a[i+1])
elif (a[i]=='*'):
result*=int(a[i+1])
else:
continue
print result
2. 集合的特性是确定性、无序性和互异性。现有有个集合S = {p/q|w<=p<=x,y<=q<=z},给定w,x,y,z四个整数,求这样的集合共有多少个。输入:1 10 1 1
输出:10
Python实现代码:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
w=raw_input()
li1=[]
li2=[]
li=[]
x = w.split(" ")
len1=int(x[1])-int(x[0])
len2=int(x[3])-int(x[2])
for i in range(int(x[0]),int(x[1])+1):
li1.append(i)
for j in range(int(x[2]),int(x[3])+1):
li2.append(j)
for i in li1:
for j in li2:
temp=float(i)/float(j)
li.append(temp)
se =set(li)
length=len(se)
print(length)
3.小易有一个长度为n序列,小易想移除掉里面的重复元素,但是小易想是对于每种元素保留最后出现的那个。小易遇到了困难,希望你来帮助他。 输入描述:
输入包括两行:
第一行为序列长度n(1 ≤ n ≤ 50)
第二行为n个数sequence[i](1 ≤ sequence[i] ≤ 1000),以空格分隔
输出描述:
输出消除重复元素之后的序列,以空格分隔,行末无空格
输入例子:
9 100 100 100 99 99 99 100 100 100
输出例子:
99 100
Python代码
n=raw_input()
n=int(n)
numlist=raw_input()
x = numlist.split(" ")
li=[]
arr=[]
for i in range(0,9):
if x[i] in li:
index=li.remove(x[i])
li.append(x[i])
else:
li.append(x[i])
#print li
b=' '.join(li)
print b