2017-02-24 100 views
1

一位朋友在前些日子問我,以幫助他編寫僞代碼,將下列字符串「HelloWorld」的每個單詞分隔開來,並將其與數組[x]中的未使用數組元素一起存儲一個空的字符串。將駱駝帽的僞代碼寫入數組

我實際上並不知道從哪裏開始,而是用Python編程它,但是使用了[AZ] [az]中的一些函數來檢測大小寫,以便知道何時分割字符串,但是您怎麼看甚至去編寫僞代碼,因爲它沒有任何官方文檔?

+0

只是爲了記錄:如果OP給出一些反饋,如果答案幫助他,它總是有幫助的;或者如果有東西丟失... – GhostCat

+0

你好,所有這些回覆看起來很完美,我已經通過這回給我的朋友,我會看看他是否有任何問題,我已經投了迴應 – LangdonBrock

+0

我很高興你得到了幫助你正在尋找。但是:你沒有贊成任何答案!這兩個upvotes爲其他答案來自我。你首先必須接受一個答案,達到15代表之前,你甚至能夠upvote! – GhostCat

回答

1

背後僞代碼的基本原理是描述的算法。通常你會留下語言實現的血腥細節。但事實是,你必須決定你寫的水平和離開的水平。

在這裏,我會寫:

declare an array of 10 strings arr initialized to empty strings 
set arr_index to 0 
initialize index to first position in string 
loop 
    find first uppercase letter after index 
    if none find: exit loop 
    if found at new_index 
     copy characters from index (inclusive) to new_index (exclusive) to a new string 
     store that string in arr[arr_index] 
     increment arr_index 
     set index = new_index 
end loop 
arr_index is the number of words found 

在這裏,我已經離開了一個大寫字母和一個字符串的拷貝到一個新的字符串實施者的研究,但恕我直言的描述就足以立即寫這在C,C++ Python或Java(我知道的語言)

1

這是僞代碼。

定義它「工作」。

一樣:它可能是不夠的,只是狀態:

有一些

fun isUpperCase(char c) 

,基於的c的情況下岬返回真/假。

然後你的算法利用這個函數作爲例子。

想法的僞代碼是描述必不可少的部分算法。這樣一個功能如何真正起作用並不重要;只是說「我們有這樣的功能」;然後開始使用它。

換句話說:您擔心如何以僞代碼術語表達正則表達式/拆分。不要 - 這已經是一個(不太重要的)實現細節。

1

下面是一些示例僞代碼:

create empty array 
set offset = 0 
for each character in "HelloWorldThisIsCamelCase": 
    if character is uppercase: 
    increment offset 
    append character to array element at offset