牛客網——C++字符串中找出連續最長的數字串【完整分析加代碼】

《 《《《 感覺不錯,關注一個再走。》》》》

題目描述:
讀入一個字符串str,輸出字符串str中的連續最長的數字串。
輸入描述:

個測試輸入包含1個測試用例,一個字符串str,長度不超過255。

輸出描述:

在一行內輸出str中裏連續最長的數字串。

示例1:

輸入

abcd12345ed125ss123456789

輸出

123456789

解題思想:

1.首先,我們看到這個題的首先想法是將字符串輸入,然後將現有的數字長度進行比較,找到最長的數字串,最後輸出結果,所以我們首先創建三個字符變量,【str , cur , ret】。
2.其次,就是求出這段 str 字符串的長度,由頭開始,將數字串保留下來,然後進行比較,將較長的字符串更新。
3.如果沒有之前的 cur 數字串長,那麼將現在的 cur 數字串清空,重新輸入字符串,進行比較。
4.最後,將 ret 結果輸出。

下面爲分析結果的代碼:

#include<iostream>
#include<string>

using namespace std;

int main()
{
	//創建一個字符串str,數字長度cur,輸出結果的變量ret
	string str, cur, ret;
	cin >> str;
	    for (int i = 0; i <= str.length(); i++)
		{
			//將0-9之間連續的數字保存到cur上
			if (str[i] >= '0' && str[i] <= '9')
			{
				cur += str[i];
			}
			else
			{
				//找出更長的字符串,更新之前的字符串
				if (ret.size() < cur.size())
				{
					ret = cur;
				}
				//如果沒有,那麼將之前的清空
				else
				{
					cur.clear();
				}
			}
		}
	cout << ret;
	return 0;
}

這就是我的解題思路,如果還有其他問題,下面留言吖。

感覺不錯,關注一個再走。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章