1. 程式人生 > >亞信科技筆試題

亞信科技筆試題

不清楚這道題是不是亞信科技的原創題目,貌似在網上看到微軟的筆試也有這道題目。原題的是c語言解決的,考慮java熟練一些,自己就有java來寫這道題的演算法。
題目描述:編寫一個確定字串在另一個字串中出現的次數的演算法。例如字串“this”在字串”this is my first program, this…”中出現了2次,不要使用庫函式(方法)。
解題思路:寫一個靜態方法,先取出要查詢的字串的第一個字母,然後再拿到字串中去搜尋,當字串中出現字母與要查詢的首字母吻合,我們就做標記,然後用剩餘的字元逐步比較。四個字元都吻合,計數器變數count自增。

public class FindStr
{
public static void main(String[] args) { String strToFind = "this"; String str = "this,this thi s my first program, this is my java..."; System.out.println(countAppea(strToFind, str)); } public static int countAppea(String str2Find, String str) { int
count = 0; for(int i = 0; i < str.length(); i++) { char c = str.charAt(i); boolean flag = false; if(str2Find.charAt(0) == c) { flag = true; int index = i; for(int j = 0; j < str2Find.length(); j++, index
++) { if(str2Find.charAt(j) != str.charAt(index)) { flag = false; break; } } if(flag) { count ++; } } } return count; } }

執行結果:
3
因為我的字串裡面有四個this,其中有一個事故意分開的。所以有三個this!