最新移动网站趋势,网站攻击一般有那些,家居品牌网站建设,厦门市建设局新网站力扣热题#xff1a;796.旋转字符串
开篇 今天下午刷了6道力扣算法题#xff0c;选了一道有多种解法的题目与大家分享。
题目链接:796.旋转字符串
题目描述 代码思路 完全按照题目的要求#xff0c;利用StringBuffer中的方法对字符串进行旋转#xff0c;寻找相同的一项 … 力扣热题796.旋转字符串
开篇 今天下午刷了6道力扣算法题选了一道有多种解法的题目与大家分享。
题目链接:796.旋转字符串
题目描述 代码思路 完全按照题目的要求利用StringBuffer中的方法对字符串进行旋转寻找相同的一项
代码纯享版
class Solution {public boolean rotateString(String s, String goal) {if(s.length() ! goal.length()) return false;StringBuffer str new StringBuffer(s);for(int i 0; i s.length(); i){if(str.toString().equals(goal)) return true;char a str.charAt(0);str.delete(0,1);str.append( a);}return false;}
}代码逐行解析版
class Solution {public boolean rotateString(String s, String goal) {if(s.length() ! goal.length()) return false; //两个字符串如果长度不同一定不符合要求StringBuffer str new StringBuffer(s);//改变s的类型方便操作for(int i 0; i s.length(); i){if(str.toString().equals(goal)) return true; //如果两个字符串一样返回truechar a str.charAt(0); //根据题目要求以下3行对字符串进行旋转str.delete(0,1);str.append( a);}return false; //对字符串旋转与其长度相同的次数后仍无法满足要求返回false}
}其它解法
1.利用取模运算不需要对字符串进行旋转即可进行判断
class Solution {public boolean rotateString(String s, String goal) {int m s.length(), n goal.length();if (m ! n) {return false;}for (int i 0; i n; i) {boolean flag true;for (int j 0; j n; j) {if (s.charAt((i j) % n) ! goal.charAt(j)) {flag false;break;}}if (flag) {return true;}}return false;}
}2.这方法太牛逼了。字符串ss中包含了旋转的所有结果只需要判断goal是否为ss的子串。
class Solution {public boolean rotateString(String s, String goal) {return s.length() goal.length() (s s).contains(goal);}
}结语 如果这道题的分享对你有帮助点个关注支持一下我会每天更新力扣题目的讲解与大家一起进步。