ニウケ回文索引
タイトルの説明
小文字のみで構成される文字列が与えられます。場所を見つけてください。その文字を削除すると、文字列は回文になります。法的解決策は常にありますのでご安心ください。指定された文字列が既に回文である場合、-1を出力します。
アイデア:
回文番号は正面から読み取られ、背面から読み取られます。取得される順序は同じです。
- 文字列が既に回文である場合、-1を直接出力します
- パリンドロームでない場合は、末尾を削除して再度確認してください。パリンドロームの場合、出力端
- それ以外の場合、出力は
PSで始まります。このトピックは、コードを理解することが依然として困難
です。
#include<iostream>
#include<string>
using namespace std;
bool Ispalindrome(string& s,int* start, int* end){
int i = 0;
int j = s.size()-1;
bool result = true;
while(i <= j){
if(s[i] != s[j]){
result = false;//注意这里是改变result的值
break;
}
i++,j--;
}
if(start != nullptr) *start = i;
if(end != nullptr) *end = j;
return result;
}
int main(){
int num = 0;
cin >> num;
while(num--){
string str;
cin >> str;
int start = 0;
int end = str.size() -1;
if(Ispalindrome(str, &start, &end)){
cout<< -1<<endl;
}
else{
str.erase(end, 1);
if(Ispalindrome(str, nullptr, nullptr)){
cout<<end<<endl;
}
else{
cout<<start<<endl;
}
}
}
}
Niu Keは配列を最小数に配置します
タイトルの説明
正の整数の配列を入力し、配列内のすべての数値を結合して数値を形成し、スプライス可能なすべての数値のうち最小の数値を出力します。たとえば、配列{3、32、321}を入力し、これらの3つの数値が321323として配置できる最小の数値を出力します。
アイデア:
代替のソートでは、新しいファンクターの定義が必要です。
コード:
class Solution {
public:
static bool cmp(int a, int b){
string A = "";
string B = "";
A += to_string(a);
A += to_string(b);
B += to_string(b);
B += to_string(a);
return A < B;
}
string PrintMinNumber(vector<int> numbers) {
string res ="";
sort(numbers.begin(), numbers.end(),cmp);
for(int i = 0;i<numbers.size();++i){
res += to_string(numbers[i]);
}
return res;
}
};
二分木の深さ
タイトルの説明
バイナリツリーを入力し、ツリーの深さを見つけます。ルートノードからリーフノードに順番に通過するノード(ルートとリーフノードを含む)は、ツリーのパスを形成します。最長のパスの長さは、ツリーの深さです。
アイデア:
再帰的に、左側のサブツリーと右側のサブツリーの最大値を見つけ、+ 1はツリー全体の高さコードです
。
/*
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
};*/
class Solution {
public:
int TreeDepth(TreeNode* pRoot)
{
if(nullptr == pRoot)
return 0;
return 1 + max(TreeDepth(pRoot->left),TreeDepth(pRoot->right));
}
};
アイデア:
各レイヤーの成熟度を記録するBFSレイヤーシーケンストラバーサルの実現は、次のようなコードになり
ます。
在这里插入代码片
Niukeの2つのリンクリストの最初のパブリックノード
タイトルの説明
2つのリンクリストを入力して、それらの最初の共通ノードを見つけます。(着信データはリンクされたリストであるため、着信データが正しいことを確認するために、間違ったテストデータのプロンプトが他の方法で表示されることに注意してください)
アイデア:
コード:
リンクリストの一般的な質問タイプ