gpt4 book ai didi

java - 字符链表 - int indexOf(String)

转载 作者:行者123 更新时间:2023-12-01 10:24:50 24 4
gpt4 key购买 nike

如果创建您自己的 StringBuilder 类作为 char 的链接列表,您将如何创建方法 int indexOf(String str)' s。您会循环使用一堆逻辑,还是会更容易解析 StringBuilder 对象,然后将每个对象与 str 进行比较?我已经做了一些尝试,但在以下情况下没有运气理清逻辑:

例如。查询:

b1 = new MyStringBuilder("who is whoing over in whoville");
String s1 = new String("who");
String s2 = new String("whoing");
String s3 = new String("whoville");
String s4 = new String("whoviller");
String s5 = new String("wacky");

我当前的方法:
如果它位于开头或未找到但在字符串中间识别 str 不起作用,我可以让它工作。

public int indexOf(String str)
{
int index =-1; //index at which str is first found in linked list string of chars
int count = 0; //num of matches
int firstI = -1;
int sI=0; // dynamic counter variable to allow str.length and for loop to interact
CNode currNode = firstC;
for (int i = 0; i < length; i++)
{
if (currNode.data == str.charAt(sI))
{
if (count < 1)
firstI = i;
count++;
}

if (count == 0 && (sI == str.length()-1))
sI=0;

if (count == str.length())
{
index = firstI;
break;
}

if (count > 0 && currNode.data != str.charAt(sI))
{
sI = 0;
count = 0;
}


currNode = currNode.next; //increment
sI++;
}

return index;
}

最佳答案

假设 MyStringBuildertoString(),您可以据此实现。

如果不允许您这样做,则需要对字符列表进行一些循环以查找第一个字符。如果匹配,下一个字符是否与您要查找的单词中的第二个字符匹配,依此类推。

关于java - 字符链表 - int indexOf(String),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35398934/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com