這是DFA算法,自己設定好值,看下結果
創(chuàng)新互聯(lián)建站基于成都重慶香港及美國等地區(qū)分布式IDC機房數(shù)據(jù)中心構建的電信大帶寬,聯(lián)通大帶寬,移動大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)服務器托管報價,主機托管價格性價比高,為金融證券行業(yè)成都西云數(shù)據(jù)中心,ai人工智能服務器托管提供bgp線路100M獨享,G口帶寬及機柜租用的專業(yè)成都idc公司。
import java.util.*;
import java.io.*;
class DFA
{
boolean recognizeString(int move[][], int accept_state[], String word)
{
int s=0;
for (int i = 0; i word.length(); i++)
{
char c = word.charAt(i);
s = move[s][c - 'a'];
}
for (int j = 0; j accept_state.length; j++)
if (s == accept_state[j]) return true;
return false;
}
public static void main(String args[]) throws IOException
{
int n, m;
BufferedReader in = new BufferedReader(new FileReader("DFA.in"));
StringTokenizer st = new StringTokenizer(in.readLine());
n = Integer.parseInt(st.nextToken());
m = Integer.parseInt(st.nextToken());
while (n != 0)
{
int[][] move = new int[n][m];
for(int i=0; in; i++)
{
st = new StringTokenizer(in.readLine());
for (int j=0; jm; j++)
move[i][j] = Integer.parseInt(st.nextToken());
}
String[] temp = in.readLine().split("\\s");
int[] accept = new int[temp.length];
for (int i=0; iaccept.length; i++) accept[i] = Integer.parseInt(temp[i]);
String word = in.readLine();
while (word.compareTo("#") != 0)
{
DFA dfa = new DFA();
if (dfa.recognizeString(move, accept, word)) System.out.println("YES"); else System.out.println("NO");
word = in.readLine();
}
st = new StringTokenizer(in.readLine());
n = Integer.parseInt(st.nextToken());
m = Integer.parseInt(st.nextToken());
}
}
}
public?static?void?main(String[]?args)?{
BufferedReader?br?=?null;
String[]?arr?=?new?String[]?{?"a",?"e",?"i",?"o",?"u"?};
String?line?=?"";
try?{
br?=?new?BufferedReader(new?InputStreamReader(System.in));
System.out.println("請輸入:");
line?=?br.readLine();
//1.打印元音字母的位置
for?(String?letter?:?arr)?{
if?(line.indexOf(letter)?!=?-1)
System.out.println("元音字母:"?+?letter?+?"?第一次出現(xiàn)的位置?,第"?+?(line.indexOf(letter)?+?1)?+?"個。");
else
System.out.println("元音字母:"?+?letter?+?"?未出現(xiàn)。");
}
System.out.println();
//2.每行減少一個輸出
for?(int?i?=?0;?i??line.length();?i++)?{
System.out.println(line.substring(i));
}
System.out.println("-END-");
}?catch?(Exception?e)?{
e.printStackTrace();
}?finally?{
if?(br?!=?null)
try?{
br.close();
}?catch?(IOException?e)?{
e.printStackTrace();
}
}
}
為了簡單 2合1了? 你隨便復制到某個類中就運行就可以了
測試結果:
請輸入:
,fdng,.dfga,mndsfe.,mfsd
元音字母:a 第一次出現(xiàn)的位置 ,第11個。
元音字母:e 第一次出現(xiàn)的位置 ,第18個。
元音字母:i 未出現(xiàn)。
元音字母:o 未出現(xiàn)。
元音字母:u 未出現(xiàn)。
,fdng,.dfga,mndsfe.,mfsd
fdng,.dfga,mndsfe.,mfsd
dng,.dfga,mndsfe.,mfsd
ng,.dfga,mndsfe.,mfsd
g,.dfga,mndsfe.,mfsd
,.dfga,mndsfe.,mfsd
.dfga,mndsfe.,mfsd
dfga,mndsfe.,mfsd
fga,mndsfe.,mfsd
ga,mndsfe.,mfsd
a,mndsfe.,mfsd
,mndsfe.,mfsd
mndsfe.,mfsd
ndsfe.,mfsd
dsfe.,mfsd
sfe.,mfsd
fe.,mfsd
e.,mfsd
.,mfsd
,mfsd
mfsd
fsd
sd
d
其實是頁面的問題:若用java解決的話,用jsp文件。。
最好還是用html文件
然后就是標簽的問題:
div align="center"
table
tr
td作業(yè)名稱:/td
td期中考試/td
/tr
tr
td作業(yè)方式:/td
td個人/td
/tr
tr
td作業(yè)內(nèi)容:/td
td某單位車輛管理/td
/tr
/table
/div
。。。記得點贊?。?/p>
新聞名稱:模擬dfajava代碼,java dfa
網(wǎng)址分享:http://weahome.cn/article/dssghgp.html