我以为,当时我用c++写这个函数的时候,整个人如同乱麻。
这次用java写。先查的SE 8中String的方法。找到两个与此函数有关的方法:matches()和substring()。
import java.io.*; import java.util.*; public class Solution { public static int strStr(String haystack, String needle) { int r=-1; int len1=haystack.length(); int len2=needle.length(); if(len2==0) return 0; int len=len1-len2+1; int i,j; String s; for(i=0;i<len;i++) { s=haystack.substring(i,i+len2); if(s.matches(needle)) { r=i; break; } } return r; } public static void main(String[] args) { System.out.println(strStr("ababcd","cd")); System.out.println(strStr("abcdab","ef")); } }
测试的时候注意特殊情况
“a”与""
"aaa"与"a"
leetcode Implement strStr()(easy) /java
原文:http://www.cnblogs.com/zhenzhenhuang/p/7109704.html