字串翻轉

2021-07-29 12:38:05 字數 2128 閱讀 5933

作者liyc_dev 

關注 2017.02.15 10:36

字數 426

閱讀 126

喜歡 1

遷移自開源中國

給出乙個由小寫字母組成的字串,把所有連續出現的 2 個 a 替換成 bb ( 2 個 b ),但是對於超過兩個連續的 a ,那麼這些字元都不作替換。例如:

bad -> bad (乙個a,不替換)

baad -> bbbd (替換成bb)

baaad -> baaad (連續三個a,不替換)

apaapaaapaa -> apbbpaaapbb (這裡連續的a出現了4次,只有第二段和最後一段被替換)

- (nsstring *)replace:(nsstring *)str [^a]) 以aa(第三個字母不是a)開頭,([^a]a[^a]) 字串中間的aa(前後都不是a),([^a]a$) 以aa結尾(倒數第三個字母不是a)

nsregularexpression *regular = [[nsregularexpression alloc] initwithpattern:@"(^a[^a])|([^a]a[^a])|([^a]a$)" options:nsmatchingreportprogress error:nil];

nsrange range;

do else

if (range.length > 0) else

}} while (range.length > 0);

return retstring;

}

給出乙個字串,其中只包含括號(大中小括號 「(){}」 ),括號可以任意巢狀。如果同樣的左右括號成對出現並且巢狀正確,那麼認為它是匹配的。例如:

() -> true (匹配)

[()] -> true (匹配,括號可以巢狀)

()() -> true (匹配,括號可以並列排列)

({}()) -> true (匹配,括號可以任意巢狀,大括號不必在外)

) -> false (不匹配,缺少左括號)

(} -> false (不匹配,左右括號不一樣)

-> false (不匹配,左右括號相反)

- (bool)ismatch:(nsstring *)str  else }}

return array.count == 0;

}- (int)createtagwithstring:(nsstring *)str else

if ([str isequaltostring:@")"]) else

if ([str isequaltostring:@"["]) else

if ([str isequaltostring:@"]"]) else

if ([str isequaltostring:@" else

if ([str isequaltostring:@"}"])

return

0;}

寫乙個函式,找出乙個陣列中出現次數超過一半的數字,如果數字不存在,則返回-1。例如:

[0, 1, 2] --> -1 (每個數字只出現1次)

[0, 1, 2, 1] --> -1 (1出現了2次,剛好一半)

[0, 1, 2, 1, 1] --> 1 (1出現了3次,超過一半)

(注:陣列不是按從小到達排序的,也許排序之後更容易找到這個數,但是有沒有更好、更快的方法在不重新調整順序的情況得到結果?)

- (int)mode:(nsarray *)array ];

__block int retint = -1;

// 遍歷字典,找出其中value大於集合一半的key並返回

[modemap.allkeys enumerateobjectsusingblock:^(id obj, nsuinteger idx, bool *stop)

}];return retint;

}

翻轉字串 翻轉單詞字串

將一句話裡面的單詞進行倒置,標點符號不倒換。比如一句話 i come from china.倒換後變成 china.from come i 解析 解決該問題可以分為兩步,第一步全盤置換為 anihc morf emoc i 第二部對每個單詞進行逐步翻轉,如果不是空格,則開始翻轉單詞。具體 如下 in...

字串翻轉

遞迴入門 字串翻 將字串 test 翻轉,變為 tset 解法 遞迴 此題的遞迴跟判斷回文字串的解法原理一樣。只是不是比較兩端字元,而是直接交換。include using namespace std int str turn int low,int high,char p,int length t...

字串翻轉

字串翻轉是常見筆試面試題,記錄下來 include include void reverse const char src char dest intstrlen strlen src while strlen void strrev ms char input char output int le...