static bool IsSymmetry(char[] xx) //判断是否为中心对称串的函数 { int leng = xx.Length + 1; MyStack <char> exam1 = new MyStack <char>(leng); int a = xx.Length % 2; if (a == 0) { for (int i = 0; i < xx.Length; i++) { if (i == 0 || (i > 0 && xx[i] != exam1.GetTop())) { exam1.Push(xx[i]); } else { exam1.Pop(); } } } else { for (int i = 0; i < xx.Length; i++) { if (i == (xx.Length - 1) / 2) { continue; } else if (i == 0 || (i > 0 && xx[i] != exam1.GetTop())) { exam1.Push(xx[i]); } else { exam1.Pop(); } } } if (exam1.IsEmpty()) { return(true); } else { return(false); } }
public string To26System() //转化为26进制 { string show = ""; MyStack <int> exam = new MyStack <int>(Num.Length); int[] tt = Num; while (!IsZero(NumDivide26(tt))) { exam.Push(NumMod26(tt)); tt = NumDivide26(tt); } exam.Push(NumMod26(tt)); for (int i = exam.Top; i < exam.Bottom; i++) { show += ExpressionOf26System(exam.Pop()); } return(show); }
public double PostExpressionStackCompute() //后缀表达式求值 { char[] bb = postExpression.ToCharArray(); int y = 0; for (int i = 0; i < bb.Length; i++) { if (bb[i] != '\0') { y++; } } char[] aa = new char[y]; for (int i = 0; i < aa.Length; i++) { aa[i] = bb[i]; } int leng = aa.Length + 1; MyStack <double> save = new MyStack <double>(leng); double result = 0; for (int i = 0; i < aa.Length; i++) { if (CharJuddging(aa[i]) == "OPD") { save.Push(CharToInt(aa[i])); } else { double qq = save.Pop(); double ww = save.Pop(); save.Push(Operate(aa[i], ww, qq)); } } result = save.Pop(); return(result); }