LeetCode最长公共前缀

/*
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入:strs = ["flower","flow","flight"]
输出:"fl"
示例 2:
输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀
 */

/*indexOf() 是 Java 中 String 类的一个方法,用于在字符串中搜索指定字符或
子字符串首次出现的位置。如果找到该字符或子字符串,它返回第一次出现的索引
(位置),从 0 开始计数。如果未找到,则返回 -1。
*/

public class Solution {
    public static String longestCommonPrefix(String[] strs) {
        if (strs == null || strs.length == 0) {
            return "";
        }
        // 假设第一个字符串是公共前缀的初始值
        String prefix = strs[0];
        // 遍历剩余的字符串
        for (int i = 1; i < strs.length; i++) {
            // 逐个字符比较当前字符串与公共前缀
            while (strs[i].indexOf(prefix) != 0) {
                // 如果公共前缀不是当前字符串的前缀,则移除公共前缀的最后一个字符
                prefix = prefix.substring(0, prefix.length() - 1);
                // 如果公共前缀为空,则所有字符串没有公共前缀
                if (prefix.isEmpty()) {
                    return "";
                }
            }
        }
        // 返回最终的公共前缀
        return prefix;
    }
}

//不使用indexOf()的另一种解法
class Solution {
    public String longestCommonPrefix(String[] strs) {
        String ret="";
        if(strs.length == 0)return ret;
        if(strs.length ==1)return strs[0];
        ret = strs[0];
        for(int i =1;i<strs.length;i++){
            while(!strs[i].startsWith(ret)){
                ret =ret.substring(0,ret.length()-1);
                if(ret.length()==0){
                    return "";
                }
            }
        }
        return ret;
}
}

字符串常用函数
length()返回字符串的长度,即字符串中字符的数量。


String str = "Hello"
int length = str.length();//返回5



split()
replace()
trim()
toLowerCase()
toUpperCase()

charAt(int index)返回指定索引处的 char 值。索引范围从 0 到 length() - 1。

String str = "Hello";  
char firstChar = str.charAt(0); // 返回 'H'

substring(int beginIndex)返回一个新字符串,从beginIndex到结尾

substring(int beginIndex,int endIndex)返回一个新字符串,从beIndex到endIndex

String str = "Hello,World!";
String newStr = str.substring(0,5);//返回Hello

 indexOf(int ch) 和 indexOf(String str)

indexOf() 方法返回指定字符或子字符串首次出现的索引,如果未找到则返回 -1

String str = "Hello, World!";  
int index1 = str.indexOf('o'); // 返回 4  
int index2 = str.indexOf("World"); // 返回 7

lastIndexOf(int ch) 和 lastIndexOf(String str)

lastIndexOf() 方法返回指定字符或子字符串最后一次出现的索引,如果未找到则返回 -1

String str = "Hello, World! World!";  
int i = str.lastIndexOf("l");//返回3
int index = str.lastIndexOf("World"); // 返回 13

split(String regex)

split() 方法根据给定的正则表达式将字符串拆分为子字符串数组。

String str = "apple,banana,orange";  
String[] fruits = str.split(","); // 返回 ["apple", "banana", "orange"]

replace(char oldChar, char newChar) 和 replace(CharSequence target, CharSequence replacement)

replace() 方法返回一个新的字符串,其中所有出现的指定字符或子字符串都被替换为另一个字符或子字符串。

String str = "Hello, World!";  
String replaced1 = str.replace('o', '0'); // 返回 "Hell0, W0rld!"  
String replaced2 = str.replace("World", "Java"); // 返回 "Hello, Java!"

 trim()

trim() 方法返回一个新的字符串,它是此字符串的一个副本,删除了前导和尾随的空白。

String str = "   Hello, World!   ";  
String trimmed = str.trim(); // 返回 "Hello, World!"

toLowerCase()

toLowerCase() 方法返回字符串的小写形式

String str = "Hello, World!";  
String lower = str.toLowerCase(); // 返回 "hello, world!"

toUpperCase()

toUpperCase() 方法返回字符串的大写形式。

String str = "Hello, World!";  
String upper = str.toUpperCase(); // 返回 "HELLO, WORLD!"

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值