千锤百炼软工6,7,8

这三天总结一下,10.5号的时候大体上完成了一个老师说的题目的框架,我当时傻傻的想要将每种情况列出来,

然后我发现那个实在太麻烦,都准备放弃了,然后等第二次上课的时候,耳闻到有其他方法,是通过栈实现的,然后我用了

接下来三天的每天晚上,仔细研究了一下怎么把一串字符串分开放入链表,然后再通过栈进行计算,经过了三天的思考,

大概七个小时,我也只完成了将字符串分开放入链表,下面的通过栈计算还是让我很苦恼,不过今天上了一次数据结构的课,

让我恍然大悟,我希望接下来四天的时间可以让我完成通过栈进行计算。下面附上我的源代码

package GOGOGO;
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
public class Stack1 {
 
  public static void main(String[] args) {
   int [] b = new int[15];
   String str1 = "333+(6-99)*741";
   String str2 = "";
   String str3 = "";
   Stack<String> stack = new Stack<String>();
   ArrayList<String> list = new ArrayList<String>();
   ArrayList<String> list2 = new ArrayList<String>();
   int i=0;
   int j=0;
   int k=0;
   int g=0;
   int h=0;
   for(char a:str1.toCharArray()) {
    if(Character.isDigit(a)) {
                 g=0;
    }
    else {
     if(k==0) {
      str2 = str1.substring(j,i);
      j = str1.lastIndexOf(a);
      str3 = str1.substring(j,j+1);
      list.add(str2);
      list.add(str3);
      k++;
      g++;
     }
     else {
      if(g>=1) {
       j = str1.lastIndexOf(a);
       str3 = str1.substring(j,j+1);
       list.add(str3);
      }
      else {
       str2 = str1.substring(j+1,i);
       j = str1.lastIndexOf(a);
       str3 = str1.substring(j,j+1);
       list.add(str2);
       list.add(str3);
       System.out.print(g);
      }
      g++;
     }
   }
   i++;
   }
   list.add(str1.substring(j+1));
   System.out.println(list);
   for(String a2:list) {
   
   }
}
}

 

这三天可以说我的空闲时间都在思考怎么解决这个问题,真的让人头秃,我知道这也许是很基础的东西。

但是真的用了我很大部分的精力和时间。希望我再接再厉。

 

posted @ 2020-10-09 16:14  帅超007  阅读(86)  评论(0编辑  收藏  举报