1.14. 最长公共前缀
-
编写一个函数来查找字符串数组中的最长公共前缀。
-
如果不存在公共前缀,返回空字符串 “”。
1.解题思路(横向对比)
- 1.新建变量comm储存当前的公共前缀,初始化为字符串数组的元素;
- 2.对每一个字符串s进行遍历,comm与s的字符从前向后进行比较,遇到不同的时跳出;
- 3.当公共部分长度为0时,跳出。
class Solution {
public String longestCommonPrefix(String[] strs) {
if(strs==null || strs.length==0) return "";
1.暂时存公共前缀
String comm = strs[0];
2.循环队列内的所有 字符串
for (String s:strs) {
int index = 0;
int len = Math.min(comm.length() ,s.length());
3.当满足index<最小长度 且 字符串相同下标处的 字符相同 则 index++
while (index<len && (comm.charAt(index) == s.charAt(index))){
index++;}
4.取0~index-1 之内的数据,即为本次公共字符串
comm = comm.substring(0,index);
5.当公共部分为0时,提前跳出
if (comm.length()==0)
return "";
}
6.返回公共前缀
return comm;
}
}
2.344. 反转字符串
- 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。
- 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。
- 你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。
1.解题思路(交换)
- 1.使用swap函数进行前后交换,从两头向中间走。
class Solution {
public void reverseString(char[] s) {
if (s==null || s.length==0 || s.length==1) return;
for (int i = 0