技术标签: JAVA 程序员面试金典 面试 算法 java 字符串 算法练习
字符串轮转。给定两个字符串s1
和s2
,请编写代码检查s2
是否为s1
旋转而成(比如,waterbottle
是erbottlewat
旋转后的字符串)。
示例 1:
输入:s1 = "waterbottle", s2 = "erbottlewat"
输出:True
示例 2:
输入:s1 = "aa", s2 = "aba"
输出:False
1.将字符串2连接两次,如果是旋转来的,那里面肯定有字符串1
2.定义一个头指针和尾指针,定位在字符串2
3.移动字符串2上面的指针,如果串1和串2首位相等,再详细比较里面的字符
4.最终需要遍历的就是字符串的长度
public class Solution {
public boolean isFlipedString(String s1, String s2) {
if(s1==null||s1.length()==0) {
return s2 == null || s2.length() == 0;
}
if(s1.length()!=s2.length()) return false;
String str = s2+s2;
int len = s1.length();
char[] chars1 = s1.toCharArray();
char[] chars2 = str.toCharArray();
for (int start = 0; start <= chars1.length; start++) {
//如果找到可能匹配的字段
if(chars1[0]==chars2[start]&&chars1[len-1]==chars2[start+len-1]) {
boolean isFliped = true;
for (int i = 0; i < len-1-i; i++) {
if(!(chars1[i]==chars2[start+i]&&chars1[len-1-i]==chars2[start+len-1-i])) {
isFliped = false;
break;
}
}
if(isFliped) return true;
}
}
return false;
}
文章浏览阅读1.1k次。三种进化算法:遗传算法、粒子群算法、差分算法,以及它们再Rosenbrock函数优化问题中的应用。这是一篇学习笔记,可能有纰漏。_差分进化算法和粒子群
文章浏览阅读817次,点赞21次,收藏9次。Sora普通人理解的原理——帧处理_sora每生成一帧需要消耗
文章浏览阅读5.6k次。随着文档数字化的发展,光学字符识别 (OCR) 变得越来越流行,OCR 在处理基于图像的文档中发挥着至关重要的作用。基于电商APP移动端的业务场景,是否也能利用OCR来为用户提供更加便利的购物体验呢。_tesseract 中文训练模型
文章浏览阅读240次。做四轴也有一段时间了。近期一直在做PID方面的工作。如今四轴基本能够实现室内比較稳定的飞行,操控手感也能够接受。稍后上试飞视频。在此把一些PID方面的经验总结总结和大家分享一下。首先介绍一下大概的硬件组成:MCU:FreescaleMK60D传感器(IMU):GY-86模块(MPU6050+HMC5883L+MS5611)433MHz传输数据模块DC-DC可调..._调试无人机偏航轴pid
文章浏览阅读7.1k次。控件特性 实现的主要技术为Javascript, DOM 在iframe中显示控件,不会被SELECT,OBJECT等标签覆盖。 包含日期和时间的选择,也可以只选择日期。 使用举例 选择日期 选择日期小时 选择日期小时分钟 选择日期小时分钟秒 源代码及文档下载:http://pi_手动实现web时间选择器
文章浏览阅读154次,点赞5次,收藏2次。一、 CAN总线结构和传输协议声明:本人水平有限,博客可能存在部分错误的地方,请广大读者谅解并向本人反馈错误。本专栏博客参考《STM32Cube高效开发教程(基础篇)》,有意向的读者可以购买正版书籍辅助学习,本书籍由王维波老师、鄢志丹老师、王钊老师倾力打造,书籍内容干货满满。一、 CAN总线结构和传输协议CAN是控制器区域网络(Controller Area Network)的缩写。CAN总线是一种适用于工业设备的高性能总线网络。在本博客中,会介绍CAN总线通信协议,CAN的HAL驱动程序。
文章浏览阅读1.9k次。Android HTTP访问的两种方式(HttpClient和HttpURLConnection)_androidhttp请求
文章浏览阅读1.3k次,点赞8次,收藏6次。【代码】微软商店详细安装(Microsoft Store)_microsoft store安装
文章浏览阅读658次。http://nodejs.cn/选择下载.zip的64位然后进行环境配置选择系统变量中的path编辑输入你node安装的地址按住win+r输入cmd再输node -v出现如图就安装好了。打开Visual Studio Code点击文件夹,按住Ctrl+shift+y在终端输入npminstall-gless在输入lessc -v如图所示就好了!有用的话不妨点个赞!!!..._visual studio code安装node.js
文章浏览阅读197次。在编译阶段 在函数的调用点直接展开。定义点不生成符号inline 和static 区别inline 无清栈开栈 static 有inline和 宏的区别分别在编译阶段,和预编译阶段 (内联是更高级的宏:有词法分析)注意事项1,内联的实现写在头文件中 .h2,只在Release版本生成3,内联是一个建议 递归,循环,swich 不能使用4,基于实现,不是基于声明优缺点..._keil inline
文章浏览阅读5.7k次,点赞7次,收藏45次。目录第1章 什么是帧1.1 帧的基本定义1.2 以太网帧结构1.3 LTE 10ms无线帧结构的特点1.4 LTE 10ms无线帧结构的分类第2章 LTE FDD 10ms无线帧的结构第3章LTE TDD 10ms无线帧的结构3.1 TDD帧结构概述3.2 TDD帧的上下行子帧的配比3.3 特殊子帧的配置第4章 LTE 1ms子帧的频域资源RE4.1 频域子载波资源4.2 OFDM周期4.3 常见的时频资源术语第1章 什么是帧1.1 ..._lte帧结构
文章浏览阅读681次。FPGA(FieldProgrammableGateArray)是在PAL、GAL等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA设计不是简单的芯片研究,主要是利用FPGA的模式进行其他行业产品的设计。与ASIC不同,FPGA在通信行业的应用比较广泛。1、希望阅读笔者的博客可以对您有所帮助;2、希望读者可以快速学习VerilogHDL编程语言;。https。..._verilog 语言真值表