Problem
For a given source string and a target string, you should output the first index(from 0) of target string in source string.
If target does not exist in source, just return -1.
Note我終于找到了比較好的KMP算法。
http://alice-alicesspace.blogspot.com/2015/07/strstr-kmp-solution-java.html
class Solution { public int strStr(String source, String target) { //write your code here if (source == null | target == null) { return -1; } int i, j; for (i = 0; i < source.length() - target.length() +1; i++) { for (j = 0; j < target.length(); j++) { if (source.charAt(i+j) != target.charAt(j)) { break; } } if (j == target.length()) { return i; } } return -1; } }
KMP算法不如也貼出來。
class Solution { public int strStr(String source, String target) { //write your code here if (source == null || target == null) { return -1; } if (target.length() == 0) { return 0; } int[] prefix = new int[target.length()]; int k = 0; for (int i = 1; i < target.length(); i++) { while (k > 1 && target.charAt(k) != target.charAt(i)) { k = prefix[k-1]; } if (target.charAt(i) == target.charAt(k)) k++; prefix[i] = k; } k = 0; for (int i = 0; i < source.length(); i++) { while (k > 1 && source.charAt(i) != target.charAt(k)) { k = prefix[k-1]; } if (target.charAt(k) == source.charAt(i)) { k++; } if (k == target.length()) { return i - k + 1; } } return -1; } }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/65484.html
摘要:就不說了,使用的解法思路如下建立,對應(yīng)該元素的值與之差,對應(yīng)該元素的。然后,循環(huán),對每個元素計算該值與之差,放入里,。如果中包含等于該元素值的值,那么說明這個元素正是中包含的對應(yīng)的差值。返回二元數(shù)組,即為兩個所求加數(shù)的序列。 Problem Given an array of integers, find two numbers such that they add up to a s...
摘要:建立長度與目標(biāo)串相等的模式函數(shù)初始化,為,之后,若不重復(fù),賦,若有重復(fù)段,賦對應(yīng)的模式函數(shù)值不難,建議死記硬背根據(jù)模式函數(shù)用兩個指針比較兩個字符串,當(dāng)目標(biāo)串指針和目標(biāo)串長度相等時,返回差值。 Implement strStr() Problem Implement strStr(). Returns the index of the first occurrence of needle...
摘要:建立一個長度為的數(shù)組,統(tǒng)計所有個字符在出現(xiàn)的次數(shù),然后減去這些字符在中出現(xiàn)的次數(shù)。否則,循環(huán)結(jié)束,說明所有字符在和中出現(xiàn)的次數(shù)一致,返回。 Program Write a method anagram(s,t) to decide if two strings are anagrams or not. Example Given s=abcd, t=dcab, return true....
Problem Given an array of integers, find out whether there are two distinct indices i and j in the array such that the absolute difference between nums[i] and nums[j] is at most t and the absolute dif...
摘要:運行結(jié)果片段發(fā)現(xiàn)密碼的返回長度與其他不同,獲得密碼,爆破成功。源碼分析加入了對登錄失敗次數(shù)做限制,防止爆破用了更為安全的機制防御注入 BurpSuite-Intruder筆記 Burp intruder是一個強大的工具,用于自動對Web應(yīng)用程序自定義的攻擊。它可以用來自動執(zhí)行所有類型的任務(wù)您的測試過程中可能出現(xiàn)的 模塊說明 Target 用于配置目標(biāo)服務(wù)器進行攻擊的詳細信息 Posi...
閱讀 3211·2023-04-26 03:06
閱讀 3697·2021-11-22 09:34
閱讀 1145·2021-10-08 10:05
閱讀 3044·2021-09-22 15:53
閱讀 3549·2021-09-14 18:05
閱讀 1415·2021-08-05 09:56
閱讀 1921·2019-08-30 15:56
閱讀 2134·2019-08-29 11:02