旋转字符串

本文介绍了如何通过旋转操作判断字符串s是否能变成目标字符串goal,并详细讲解了JavaScript中的indexOf()、charAt()和substring()方法,包括它们的用法、返回值以及在查找和截取字符串时的注意事项。
摘要由CSDN通过智能技术生成

转自LeetCode算法
给定两个字符串, s 和 goal。如果在若干次旋转操作之后,s 能变成 goal ,那么返回 true 。
s 的 旋转操作 就是将 s 最左边的字符移动到最右边。
例如, 若 s = ‘abcde’,在旋转一次之后结果就是’bcdea’ 。

示例 1:
输入: s = "abcde", goal = "cdeab"
输出: true

示例 2:
输入: s = "abcde", goal = "abced"
输出: false
 
提示:
1 <= s.length, goal.length <= 100
s 和 goal 由小写英文字母组成

class Solution {
    public boolean rotateString(String s, String goal) {


 char start = goal.charAt(0);
        int index = s.indexOf(start);
        while (index != -1) {
            if ((s.substring(index, s.length()) + s.substring(0, index)).equals(goal)) {
                return true;
            }
            index = s.indexOf(start, index + 1);
        }
        return false;
 

    }
}

indexOf() 方法

indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。

stringObject.indexOf(searchvalue,fromindex)

说明

该方法将从头到尾地检索字符串 stringObject,看它是否含有子串 searchvalue。开始检索的位置在字符串的 fromindex 处或字符串的开头(没有指定 fromindex 时)。如果找到一个 searchvalue,则返回 searchvalue 的第一次出现的位置。stringObject 中的字符位置是从 0 开始的。

说明

该方法将从头到尾地检索字符串 stringObject,看它是否含有子串 searchvalue。开始检索的位置在字符串的 fromindex 处或字符串的开头(没有指定 fromindex 时)。如果找到一个 searchvalue,则返回 searchvalue 的第一次出现的位置。stringObject 中的字符位置是从 0 开始的。

提示和注释

**注释:**indexOf() 方法对大小写敏感!
**注释:**如果要检索的字符串值没有出现,则该方法返回 -1。

JavaScript charAt() 方法

定义和用法

charAt() 方法可返回指定位置的字符。
请注意,JavaScript 并没有一种有别于字符串类型的字符数据类型,所以返回的字符是长度为 1 的字符串。

语法

stringObject.charAt(index)

提示和注释

**注释:**字符串中第一个字符的下标是 0。如果参数 index 不在 0 与 string.length 之间,该方法将返回一个空字符串。

JavaScript substring() 方法

定义和用法

substring() 方法用于提取字符串中介于两个指定下标之间的字符。

语法

stringObject.substring(start,stop)

返回值

一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 stop-1 处的所有字符,其长度为 stopstart

说明

substring() 方法返回的子串包括 start 处的字符,但不包括 stop 处的字符。
如果参数 startstop 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。如果 startstop 大,那么该方法在提取子串之前会先交换这两个参数。

提示和注释

**重要事项:**与 slice()substr() 方法不同的是,substring() 不接受负的参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值