public int GetFragment (String str) { Queue<Integer> list=new LinkedList<>(); Stack<Character> s=new Stack<>(); int i=0,sum=0,out; for(char c:str.toCharArray()){ if(s.isEmpty()){ s.push(c); i++; }else if(!s.isEmpty()&amp;&amp;s.peek()==c){ s.push(c); i++; }else if(!s.isEmpty()&amp;&amp;s.peek()!=c){ while(!s.isEmpty()){ s.pop();} list.add(i); s.push(c); i=1; } } if(!s.isEmpty()){ while(!s.isEmpty()){ s.pop();} list.add(i); } int l=list.size(); for(int j=0;j<l;j++){ sum+=list.poll(); } System.out.println(!str.isEmpty()?sum/l:0); return !str.isEmpty()?sum/l:0; }}