算法面试——字符串:反转、最长回文、字符串解码
一、反转字符串publicvoidreverseString(char[]s){intleft0,rights.length-1;while(leftright){chartemps[left];s[left]s[right];s[right]temp;left;right--;}}二、最长回文子串publicStringlongestPalindrome(Strings){intns.length();boolean[][]dpnewboolean[n][n];intstart0,maxLen1;for(inti0;in;i)dp[i][i]true;for(intlen2;lenn;len){for(inti0;ilen-1n;i){intjilen-1;if(s.charAt(i)s.charAt(j)){dp[i][j]len2||dp[i1][j-1];}if(dp[i][j]lenmaxLen){starti;maxLenlen;}}}returns.substring(start,startmaxLen);}三、字符串解码publicStringdecodeString(Strings){StackIntegercountStacknewStack();StackStringstrStacknewStack();Stringcurrent;intnum0;for(charc:s.toCharArray()){if(Character.isDigit(c)){numnum*10(c-0);}elseif(c[){countStack.push(num);strStack.push(current);num0;current;}elseif(c]){intcountcountStack.pop();StringprevstrStack.pop();currentprevcurrent.repeat(count);}else{currentc;}}returncurrent;} 觉得有用的话点赞 关注【张老师技术栈】吧