public static void main(String[] args) {
String s1 = "nei", s2 = "neighneigh", s3 = "neingeighh", s4 = "nneigneighheigh";
String s5 = "inghgeihhnnehegiggniienehgiinininnggeiiggheiinennihinihnigiiiheiehnigniehhnhhihheegenigiiienghihgnheneneiineeiihgegnnehgennheihhhgieehghigininniggineenignihnenhenehheggeghhgeeghegnihnghiiennegnhiengnegeneihegnenhinihhineiehhnhnihihinhnhgginhnninigieggginhhhiinheiiihegiegeenngggnhieneeenigiinnhiggneneegiiheihggghnhiinhiheiniegiiehnhggehengehigegnggnegenghhggehgeneehnhhngnheiggiggneieegnhegnhegnniieenhheighennheeghneeegehhhiihhegiehggiehgihhngneneheeiieeengieenninnhihheeeeeehehghenihggheeihgiigigiiggneheinhegghninheeihhiheeiehininngigiiiegiignghgehineehhnnginggiginehhhheenehhhegegehhniheeehegignnghhieeiiihhnhieginneneigihhnihiieiiigheinnginhnihnnehiieeeghieegngnnnhiieiheghnnineegnheegnhehighngeenhingegneghhinhienheenhihiehnnnghnghegeiingeiigeghieeigeheniegiignhhnighginiehghngninngeinnngingheingghginegeegghnneennnenieginhnihhieihgnghigiggnnhniheiigienhiiggienehgegihgignhhneehegh";
System.out.println(solve(s1));
System.out.println(solve(s2));
System.out.println(solve(s3));
System.out.println(solve(s4));
System.out.println(solve(s5));
}
private static String str = "neigh";
private static int solve(String s) {
int res = 0, cnt = 0, sCur = 4;
if(s.charAt(0) != 'n' || s.charAt(s.length() - 1) != 'h')
return -1;
Stack stack = new Stack<>();
for(int i=0;i cache = new ArrayList<>();
while(stack.peek() != 'n') {
char c = stack.pop();
if(c != str.charAt(sCur)) {
cache.add(c);
}else {
sCur--;
}
}
stack.pop();
sCur = 4;
if(!stack.isEmpty() || cnt > 0)
cnt++;
else {
cnt=1;
}
stack.addAll(cache);
}else {
stack.push(cur);
}
res = Math.max(res, cnt);
cnt = stack.isEmpty() ? 0 : cnt;
}
return res == 0 ? -1 : res;
}