字符串左移位
![]() | ![]() | |
![]() |
/* * 字符串左移,如abcdefghi左移4位后为efghiabcd */ publicclassShiftLeft { staticString reverStr(String s){ intlow = 0; inthigh = s.length()-1; char[] temp = newchar[s.length()]; while(low <= high){ temp[low] = s.charAt(high); temp[high] = s.charAt(low); low++; high--; } returnString.valueOf(temp); } /** * * @param s 要移位的字符串 * @param digits 向左移动的位数 */ staticString shift(String s,intdigits){ if(digits==0){ returns; }elseif(digits>0){ digits = digits % s.length(); String left = reverStr(s.substring(0, digits)); String right = reverStr(s.substring(digits)); String result = reverStr(left+right); returnresult; }else{ //此时变为向右移digits位,即向左移动s.length() - digits位 digits = -digits; digits = digits % s.length(); returnshift(s,s.length()-digits); } } publicstaticvoidmain(String[] args) { String s = "abcdefghi"; System.out.println(shift(s,-3)); } } | |
![]() | ![]() |