Building Software System I
วันจันทร์ที่ 31 สิงหาคม พ.ศ. 2558
ทดลองเขียน class Stack และ ตัวอย่าง
Class Stack
*อ้างอิงข้อมูลใน class จาก
http://docs.oracle.com/javase/7/docs/api/java/util/Stack.html
**เพิ่ม method show
ตัวอย่าง
โปรแกรมพิสูจน์คู่วงเล็บ
class Stack : def __init__(self) : self.list = [] def push(self,a) : self.list.append(a) def pop(self) : return self.list.pop() def isEmpty(self) : if len(self.list)==0 : return True else : return False def search(self,x) : list2 = self.list.revorse() index = list2.index(x) return (len(list)-1)-index def show(self) : print (self.list) def peek(self) : if len(self.list)!=0 : return self.list[len(self.list)-1] A = Stack() #Stack ตัวแรกเก็บ input B = Stack() #ตัวนี้ไว้เก็บวงเล็บที่เอาไว้จับคู่ Input = input() #รับ input เข้ามา เป็น String for i in range(len(Input)) : #loop นี้ ทำหน้าที่เก็บข้อมูลลงใน stack A.push(Input[i]) while A.isEmpty()==False : #เงื่อนไขเพื่อให้เช็คทุกตัว if (A.peek()=='(' and B.peek()==')') or (A.peek()==')' and B.peek()=='(') : #เงื่อนไขการ check (อธิบายตอน present) A.pop() #ให้ pop ทิ้งออกไป B.pop() else : B.push(A.pop()) #pop จาก A ไปใส่ให้ B if B.isEmpty() : #ทำจนเสร็จแล้ว (ใน A หมด) ยังมีตัวเหลืออยู่ใน B หรือเปล่า print (True) else : #ถ้ามี แสดงว่ามีตัวที่ไม่เข้าคู่ print (False)
Output
ไม่มีความคิดเห็น:
แสดงความคิดเห็น
บทความใหม่กว่า
บทความที่เก่ากว่า
หน้าแรก
สมัครสมาชิก:
ส่งความคิดเห็น (Atom)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น