查找里面的字符串的位置


var box = 'jdjsjnsdkjnsnjknsdjkfnsjnjsdjnjdsjdsn';
var arr = [];
var pos = box.indexOf('j');
while(pos > -1){
    arr.push(pos);
    pos = box.indexOf('j',pos+1);
}
alert(arr);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用双指针的方法来实现在字符串里面查找回文字符串,并返回结果。 具体做法如下: 1. 定义两个指针 i 和 j,分别指向字符串的起始位置和末尾位置。 2. 从 i 和 j 开始,分别向中间移动,判断两个指针所指的字符是否相同,如果不同,则说明当前子串不是回文字符串。 3. 如果两个字符相同,则继续向中间移动,直到 i 和 j 相遇或者子串不是回文字符串为止。 4. 如果当前子串是回文字符串,则将其保存到结果字符串中。 5. 将指针 i 后移一位,重复步骤 2~4,直到 i 到达字符串末尾。 以下是该算法的 C 语言实现: ```c #include <stdio.h> #include <string.h> char* find_palindrome(char *str, int len) { char *result = NULL; int i, j, k; for (i = 0; i < len; i++) { for (j = len - 1; j >= i; j--) { if (str[i] == str[j]) { for (k = 1; k <= (j - i + 1) / 2; k++) { if (str[i + k - 1] != str[j - k + 1]) { break; } } if (k > (j - i + 1) / 2) { int size = j - i + 2; result = (char*)malloc(size); if (result) { strncpy(result, str + i, size - 1); result[size - 1] = '\0'; } return result; } } } } return result; } int main() { char str[] = "abacdfgdcaba"; char *result = find_palindrome(str, strlen(str)); if (result) { printf("The palindrome is: %s\n", result); free(result); } else { printf("No palindrome found.\n"); } return 0; } ``` 在这个例子中,我们定义了一个函数 `find_palindrome`,它接受一个字符串字符串的长度作为参数,返回一个指向回文字符串的指针,如果没有到回文字符串,则返回 NULL。 我们首先定义了三个指针 i、j 和 k,分别用于遍历字符串和判断回文字符串。然后,我们通过两重循环,依次枚举所有的子串,判断它是否是回文字符串。如果是回文字符串,则将其保存到结果字符串中并返回。 在主函数中,我们调用 `find_palindrome` 函数来查找字符串中的回文字符串,并输出结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值