5. 最长回文子串(JS实现)

JS动态规划求出字符串最长回文子串的长度(小白版) 【代码】JS动态规划求出字符串最长回文子串的长度(初学小白版) 阅读详情

1 题目

给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
示例 1:
输入: “babad”
输出: “bab”
注意: “aba” 也是一个有效答案。
示例 2:
输入: “cbbd”
输出: “bb”

2 思路

这道题利用动态规划的方法,若一个字符串是回文字符串,那么在其首尾同时加上一个相同的字符得到的字符串也是回文字符串。在建立动态规划二维表时,首先判断1个字符和2个字符的情况,其他长度的字符串通过状态转移方程得出答案
在这里插入图片描述

3代码

/**
 * @param {string} s
 * @return {string}
 */
var longestPalindrome = function(s) {
    var n = s.length;
    var d = [];
    for (var k=0; k<n; k++) {
        d.push([]);
    }

    var ans = '';
    var j;
    for (var l=1; l<=n; l++) {   //l为子字符串字符长度
        for(var i=0; i<n; i++) {   //i为子字符串起始位置
            j = i + l -1;      //j为子字符串终止位置
            if (j >= n) break;
            
            if (i == j) {
                d[i][j] = true;
            } else if (j == i+1) {
                d[i][j] = (s[i] == s[j]);
            } else {
                d[i][j] = d[i+1][j-1] && (s[i] == s[j]);
            }

            if (d[i][j] && ((j - i + 1) > ans.length)) {
                ans = s.slice(i,j+1);
            }
        }
    }

    return ans;
};
JavaScript解决LeetCode算法题(5)——《最长回文子串》 题目 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例1: 输入: “babad” 输出: “bab” 注意: “aba” 也是一个有效答案。 示例2: 输入: “cbbd” 输出: “bb” 解题 方法1(动态规划): 这题的动态规划法就一个核心思想,保证s[i]===s[j]的同时,保证s[i+1]=s[j-1],这种算法时间复杂度是O(n... 阅读详情

相关推荐

JS 找出字符串中最长回文子串

给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: “babad” 输出: “bab” 注意: “aba” 也是一个有效答案。 示例 2: 输入: “cbbd” 输出: “bb” 回文的特性:回文串一定是对称的;回文串可能是abba型,也可能是aba型。 思路: 中心扩展法 1.回文串一定是对称的。所以每次选择一个中心,进行中心向两边扩展比较左右字符是否相等。 2.中心点的选取有两种: ①aba:中心点是b ②abba:中心点是两个b之间 3.所以共

GoodLuck_wu5的博客 1841

动态规划解最长回文子串问题(javascript)

问题描述: 给定一个字符串s,找到s中最长的回文子串。你可以假设s的最大长度为 1000。 leetcode地址 解法: /** * @param {string} s * @return {string} */ //开辟二维数组 const initialize2DArray = (w, h, val = null) => Array(h) .fill() .map(() => Array(w).fill(val)); ...

王可夫的博客 667

别急着做AI:FDE教你识别真需求,让AI真正落地

人工智能项目在落地过程中,经常出现业务方高喊“我们要做AI”,却说不清具体应用场景的现象。判断一个需求是否值得用AI实现,不能只看技术流行度,而要从问题出现频率、当前替代方案以及可量化业务价值三个维度展开验证。同时需要冷静比较规则引擎与大模型的边界:不是所有语义任务都要靠生成式模型,稳定、可解释且低成本的传统方案往往更具工程性价比。数据闭环也至关重要,缺乏历史样本与反馈回流路径的项目,很难在真实环境中持续优化。针对智能客服、合同审查或企业知识库等典型场景,可借助人机协同与最小代价的用户验证,逐步筛除伪需求,

weixin_42624889的博客 341

leetcode 5. 最长回文子串 js 两种方法

leetcode 5. 最长回文子串 题目 给你一个字符串 s,找到 s 中最长的回文子串。 示例 1: 输入:s = "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。 1 <= s.length <= 1000 s 仅由数字和英文字母(大写和/或小写)组成 方案一:暴力法 两个变量,遍历起始位置和子串长度,判断当前子串是否为回文串,如果是且子串长度>max,则记录子串,更改max值。 时间复杂度大概为O(n^3),有题目得到s.length <=10

一只蒻蒻的博客 882

Windows上搭建OpenHarmony星闪开发环境:HiSpark Studio全流程指南

嵌入式开发中,环境搭建是项目启动的关键步骤。OpenHarmony作为开源操作系统,其构建体系依赖Python脚本和GN/Ninja工具链,对版本兼容性要求严格。星闪(NearLink)技术作为新一代短距无线通信方案,在时延、并发和抗干扰方面优势显著,广泛应用于智能家居、工业控制等场景。在Windows平台上,通过HiSpark Studio集成开发工具,开发者可高效完成代码编辑、编译、烧录与调试。然而,Python版本冲突、环境变量配置、驱动签名等问题常导致搭建失败。本文详细拆解从系统准备到编译验证的全流

weixin_32658257的博客 344

Vite与Webpack路径配置大不同:从Vue2迁移到Vue3必须知道的public目录使用技巧

本文详细解析了Vite与Webpack在public目录路径配置上的核心差异,为Vue2迁移到Vue3的开发者提供实用指南。重点对比了两种构建工具的资源处理逻辑,给出典型编译警告的解决方案,并分享路径适配表与高级优化技巧,帮助开发者高效完成技术栈升级。

weixin_30836759的博客 485

最长回文子串——动态规划法

动态规划的方法计算字符串s中的最长回文子串: 定义一个n*n的二维数组dp,dp[i][j] =true,表示 s[i..j] 是回文串;dp[i][j] =false,表示 s[i..j] 不是回文串。 首先,长度为一的子串都是回文子串,即dp[i][i]的值都是true。 第二,对于长度为二的子串,当两字符相同时,该子串为回文子串;否则不是回文子串; 第三,长度大于二的子串,要判断该子串是否是回文子串,如s[i..j],只需判断该子串的第一个字符 ...

Debbydou的博客 3113

物联网组网技术优缺点对比:蓝牙、LoRa、wifi、NB-IoT、ZigBee等

1.前言 最近对物联网产品自组网技术选型,找到合适的组网技术,让产品自行组网并完成数据的传输。 2.参数对比

谁念西风独自凉 4万+

动态规划之最长回文子串

问题:给出一个字符串S,求S的最长回文子串的长度。 结果:字符串"PATZJUJZTACCBCC"的最长回文子串为"ATZJUJZTA",长度为9。 暴力解法 枚举子串的两个端点i和j,判断在[i, j]区间内的子串是否回文。从复杂度上来看,枚举端点需要0(n2),判断回文需要0(n),因此总复杂度是O(n3)。 动态规划解决 令dp[i][j]表示S[i]...

ly985557461的专栏 728

23、关联挖掘到相关性分析及约束关联挖掘详解

本文详细解析了从关联挖掘到相关性分析的发展过程,以及基于约束的关联挖掘方法。文章介绍了传统支持-置信度框架的局限性,并引入Lift、χ2、All Confidence和Cosine等度量来评估规则的相关性。同时探讨了多种规则约束在数据挖掘中的应用机制及其优化效果,旨在提高挖掘效率和规则质量。最后结合实际案例说明如何综合运用相关性度量与规则约束以满足业务需求,并展望了数据挖掘技术的未来发展。

aa123的博客 103

YOLOv8改进 | Conv篇 | 利用YOLO-MS的MSBlock轻量化网络结构(既轻量又长点)

本文给大家带来的改进机制是利用YOLO-MS提出的一种针对于实时目标检测的MSBlock模块,我们将其用于C2f中组合出一种新的结构,来替换我们网络中的模块可以达到一种轻量化的作用,我将其用于我的数据集上实验,包括多个类别的数据集,其在轻量网络结构的同时,却能够提高一定的mAP精度,所以这是一种十分高效的模块,该网络结构非常适合那些模型精度已经无法提到,想要从轻量化模型的角度入手的读者使用。欢迎大家订阅本专栏,本专栏每周更新3-5篇最新机制,更有包含我所有改进的文件和交流群提供给大家。

Snu77的博客 6094

【算法入门】5. 最长回文子串 LeetCode 5:最长回文子串 - 动态规划与中心扩展法详解(Java & JavaScript)(Java/JS实现)

本文介绍了如何解决最长回文子串问题,重点讲解了中心扩展法的实现。该方法通过以每个字符或字符间隙为中心向两边扩展,检测最长回文子串。文章提供了Java和JavaScript两种语言的详细实现代码,分析了算法的时间复杂度为O(n²),空间复杂度为O(1)。该方法简洁高效,是解决此问题的经典思路,适合面试和日常算法练习。

南北极之间 1464

Sigrity System Explorer Transient Analysis模式进行瞬态仿真分析操作指导-单端信号-串联端接

Sigrity System Explorer Transient Analysis模式可以用于瞬态仿真分析,通过搭建简易拓扑用于前仿真分析通道的时域性能,下面搭建一个简易的单端拓扑并且进行串联端接,以下图为例,准备好发送接收端的IBIS模型, (se_example.ibs,本例发送接收端都使用相同的IBIS模型),以及传输线的S参数模型(W1_welement_se.sp)最上方的图形界面是传输线的模型,本例是一个上下都有参考平面的带状线,右侧的梯形是蚀刻角度,根据W1和W2以及铜厚来确定。

weixin_54787054的博客 338

leetcode 5. 最长回文子串(JavaScript实现)

leetcode 5. 最长回文子串题目要求代码 题目要求 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: “babad” 输出: “bab” 注意: “aba” 也是一个有效答案。 示例 2: 输入: “cbbd” 输出: “bb” 代码 var longestPalindrome = function(s) { if (s.length < 2) { return s; } let start = 0;

ryyzxf的博客 255

Simulink开发项1000例实战专栏--实例38:基于Simulink的周波变换器(Cycloconverter)

需求分析周波变换器(Cycloconverter),也称为频率变换器或直接变频器,是一种将输入的固定频率交流电直接转换为不同频率的交流电的电力电子设备。它广泛应用于工业领域,如大功率电机驱动、风力发电、船舶推进系统等场合。与传统的间接变频器(如交-直-交变频器)相比,周波变换器具有更高的效率和更简单的结构,适用于需要低频输出的应用场景。

xiaoheshang_123的博客 334

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【算法题系列】LeetCode 5.最长回文子串|JavaScript 5种思路实现

给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。

weixin_t1452030的博客 917

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

LeetCode5.最长回文子串 JavaScript

LeetCode5.最长回文子串 JavaScript 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: “babad” 输出: “bab” 注意: “aba” 也是一个有效答案。 示例 2: 输入: “cbbd” 输出: “bb” /** * @param {string} s * @return {string} */ ...

weixin_40659167的博客 607

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

leetcode5.最长回文子串

【代码】leetcode5.最长回文子串。

2403_86950176的博客 194

每日一题 -- LeetCode (三)

每日一题 -- LeetCode(三)JavaScript / TypeScript for LeetCode1、题目要求2、解题思路2.1、JavaScript Solution2.2、TypeScript Solution JavaScript / TypeScript for LeetCode 当前进程: 开始时间:2020.6.27 结束时间:undefined GitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for

weixin_47771057的博客 338

每日一算:2021.4.24

大家好,我是梅巴哥er。今天是写算法题的第三天。我目前水平有限,仅仅只是能做到把题目做出来的地步,代码难免有些冗长。所以,如果有人在看我的算法博文,请谨记,该回答仅作为参考。肯定还有更好更优秀的做法,可以去leetcode题库查看大佬们的回答。在此不做赘述。 第5题:最长回文子串 /** * 1,这道题和第三题有很大的相似度 * 2,理解题意,就是找到首元素和尾元素相同的子串,取最长的这样的子串 * 3,先准备一个空对象obj,用来存放所有回文子串 * 4,设定字符串的长度为lenth, * 5

tuzi007a的博客 164

leetcode回文字符串相关题目总结

中心扩散算法时间复杂度为什么是n2呢,最外面的一层for循环是n应该都了解,但是为什么里面的也是n呢?,因为里面的while循环每次都没有走满n,顶多是n的一半,那么为什么是。这里给大家一些提示,如果一个算法正儿八经算出来的时间复杂度是。,那么这个算法时间复杂度该怎么表示?给你一个字符串 s,找到 s 中最长的回文子串。):这里大家可能会有疑问,为什么时间复杂度是。对吧,因为n无限大,分母就可以忽略了。

程序员超超的博客 351

LeetCode 5. 最长回文子串

给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。示例 1:输入: "babad" 输出: "bab" 注意: "aba"也是一个有效答案。 示例 2:输入: "cbbd" 输出: "bb" /* 思路:dp[i][j]={     true; i=j dp[i-1][j+1]&amp;&amp;s[i]==s[j]; j-i&

Rvelamen的博客 361

算法:leetcode_5_最长回文子串

摘要:本文介绍了两种求解最长回文子串的方法:动态规划和中心扩散法。动态规划通过构建二维dp表记录子串状态,从下到上、从左到右遍历字符串,时间复杂度较高但思路清晰。中心扩散法则以每个字符(或相邻字符对)为中心向两边扩展寻找回文,更高效且代码简洁。

bugMaker_0621的博客 1070

5.最长回文子串

题目 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 一. 中心扩张 依次遍历字符串的每个字符,然后以该字符为中心向外扩展,直到不满足回文为止,以此找出最长的子串。 js实现 /** * @param {string} s * @return {string} */ var longestPalind...

Demonre的博客 194
上一篇: 3. 无重复字符的最长子串(JS实现)
下一篇: 6. Z 字形变换(JS实现)
PAT-python-zjw
博客等级 码龄10年 381粉丝 408原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值