台灣最大程式設計社群網站
線上人數
678
 
會員總數:243856
討論主題:188345
歡迎您免費加入會員
討論區列表 >> C/C++ >> 請問尋找字串的可能性的問題?我大約寫出pseudo code、請問該如何實現?
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請問尋找字串的可能性的問題?我大約寫出pseudo code、請問該如何實現?
價值 : 100 QP  點閱數:248 回應數:5

樓主

DN Huang
門外漢
0 4
36 5
發送站內信

這個程式是要找出OWO有幾種排列可能。
首先講好你想要讀幾個字串,
然後判斷它有幾個OWO的可能性。

像是說我先輸入2,
代表我可以輸入兩行字串

然後輸入了:
OWOWO
OpqrWxyWzO

他就會輸出:
3
2
代表他在第一行字串讀出了3個可構成OWO可能性,
第二行字串讀出了2個可構成OWO可能性 。


以下是我的pseudo code:

#include<iostream>
using namespace std;
int main(){
讀取妳想輸入幾個字串

for 看妳輸入多少就讀幾次{

aaa{
找o
找到o--->到bbb去
找不到o--->break,離開aaa

bbb{
找w
找到w--->到ccc去
找不到w--->到aaa去
}

ccc{
找o
找到o--->可能性(n)加1--->到ccc去
找不到o--->到bbb去
}

}//aaa結束

}//for結束

for
cout<<可能性(n)<<\n

return 0;
}

請問利用這個邏輯,
該如何實現呢?
謝謝!




搜尋相關Tags的文章: [ C++ ] , [ 找字串 ] ,
本篇文章發表於2018-08-29 23:22
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

小魚
檢舉此回應
1.你先寫了再幫你看吧
2.第一個字串不是應該是4嗎?
本篇文章回覆於2018-08-30 01:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

DN Huang
檢舉此回應
第一個字串是4種,抱歉算錯了
本篇文章回覆於2018-08-30 07:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

DN Huang
檢舉此回應
我寫出了這樣,
可是若給他owowo
他還是只判斷只有1個可能,
請問該如何修改?
謝謝!

#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int main()
{
char a[10]={'\0'};
int *sum,n,count;
cin>>n;
sum=new int[n];
for(int k=0;k<n;k++){
sum[k]=0;
}
for(count=0;count<n;count++){
scanf("%s",a);
for(int i=0;i<strlen(a);i++){
if(a[i]=='o') {
if(a[++i]=='w'){
if(a[++i]=='o'){
sum[count]++;
}
}
}
}

}
for(count=0;count<n;count++){
cout<<sum[count]<<"\n";
}
system("pause");
}
本篇文章回覆於2018-08-31 14:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

DN Huang
檢舉此回應
我在檢察w的時候發現問題,
總是少了將近一半,
請問我應該怎麼修改?
謝謝!

#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int main()
{
char a[50]={'\0'};
int *sum,n,count;
int i=0,j=0,k=0;
cin>>n;
sum=new int[n];
for(int k=0;k<n;k++){
sum[k]=0;
}
for(count=0;count<n;count++){
scanf("%s",a);
for(i;i<strlen(a);i++){
if(a[i]=='o'){
j=++i;
for(j;j<strlen(a);j++){
if(a[j]=='w'){
k=++j;
for(k;k<strlen(a);k++){
if(a[k]=='o'){
sum[count]++;
}
}
}
}
}
}
}
for(count=0;count<n;count++){
cout<<sum[count]<<"\n";
}
system("pause");
}
本篇文章回覆於2018-08-31 14:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

小魚
檢舉此回應
j = i + 1;

k = j + 1;

++i 跟 ++j 會連變數本身都改掉,
你可能要從基礎開始了解...
本篇文章回覆於2018-08-31 19:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.