每日程式設計(40)

2021-09-14 04:12:48 字數 2126 閱讀 4483

題目描述:

給定乙個字串s,檢查是否能重新排布其中的字母,使得兩相鄰的字元不同。

若可行,輸出任意可行的結果。若不可行,返回空字串。

示例 1:

輸入: s = 「aab」

輸出: 「aba」

示例 2:

輸入: s = 「aaab」

輸出: 「」

注意:s 只包含小寫字母並且長度在[1, 500]區間內。

分析:首先通過乙個字典對字串中的所有進行乙個整合,然後判斷是否滿足重構條件,然後將儲存值和次數的結構體進行排序,從大到小,每次取除乙個間隔插入結果陣列中,知道所有的字元都插完為止。

**:

type node struct

func reorganizestring(s string) string

}t:=len(s)/2

if len(s)%2>0

if max>t

n:=make(node,0,len(m)) //儲存字元和個數

for k,v:=range m

sort.slice(n,func(i,j int)bool)

idx:=0

res:=make(byte,len(s))

for i:=0;i0

count--}}

return string(res) //合併成字串返回

}

題目描述:

給出乙個區間的集合,請合併所有重疊的區間。

示例 1:

輸入: [[1,3],[2,6],[8,10],[15,18]]

輸出: [[1,6],[8,10],[15,18]]

解釋: 區間 [1,3] 和 [2,6] 重疊, 將它們合併為 [1,6].

示例 2:

/**

* definition for an interval.

* type interval struct

*/func merge(intervals interval) interval

sort(intervals)

res:=interval{}

for i:=1;iintervals[j].start

}intervals[i],intervals[min]=swap(intervals[i],intervals[min])

}}func swap(a,b interval)(interval,interval)

func max(a,b int)int

return b

}

題目描述:給出乙個無重疊的 ,按照區間起始端點排序的區間列表。

在列表中插入乙個新的區間,你需要確保列表中的區間仍然有序且不重疊(如果有必要的話,可以合併區間)。

示例 1:

輸入: intervals = [[1,3],[6,9]], newinterval = [2,5]

輸出: [[1,5],[6,9]]

示例 2:

輸入: intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newinterval = [4,8]

輸出: [[1,2],[3,10],[12,16]]

解釋: 這是因為新的區間 [4,8] 與 [3,5],[6,7],[8,10] 重疊。

分析:這個題和上面的類似,只是這個是有序的,只是要插入乙個區間,所以先判斷插入區間與給定區間的位置關係,進行不同的操作,插入進給定陣列中,在進行合併,過程差不多,看**就能明白。

**:

/**

* definition for an interval.

* type interval struct

*/func insert(intervals interval, newinterval interval) interval

if n==0

flag:=0

if newinterval.start=intervals[len(intervals)-1].startelse

n=len(intervals)

if flag==0

return b

}

每日演算法 day 40

那些你早出晚歸付出的刻苦努力,你不想訓練,當你覺的太累了但還是要咬牙堅持的時候,那就是在追逐夢想,不要在意終點有什麼,要享受路途的過程,或許你不能成就夢想,但一定會有更偉大的事情隨之而來。mamba out 2020.3.25 最後乙個資料點卡著時間ac了差了幾十毫秒 本來想吸一口氧氣的結果不吸氧氣...

4 0 高階程式設計 Reflection

system.type類 1.屬性 許多布林屬性表示這種型別是乙個類還是乙個列舉等等。這些特性包括isabstract,isclass等等 type vectype typeof vector console.writeline vectype.isabstract return false con...

每日程式設計 (三十)

題目描述 給定 pushed 和 popped 兩個序列,只有當它們可能是在最初空棧上進行的推入 push 和彈出 pop 操作序列的結果時,返回 true 否則,返回 false 示例 1 輸入 pushed 1,2,3,4,5 popped 4,5,3,2,1 輸出 true 解釋 我們可以按以...